Posts tagged with “git”

Tips collection

  • Buefy is a lightweight UI components library for Vue.js based on Bulma
  • @keyup.enter="eventHandler" doesn't work in el-input, but @keyup.enter.native="eventHandler" does. #element-ui
  • git rm -rf . && git clean -fxd is the best way to delete all files except .git directory. #git
  • To make your dynamic LINQ query safe, you must use placeholders for all user input. Never concatenate your string! #dotnetcore
  • try_files $uri $uir/ =404; is better than try_files $uri $uri/ /index.html;, because it can avoid endless loop when /index.html doesn't exist. #nginx
  • git tag -n99 show tags along with annotations Reference
  • new crontab task added
    0 6 * * * /bin/docker container prune -f 
    10 6 * * * /bin/docker rmi $(/bin/docker images -f "dangling=true" -q)
    

A guide for git status change

状态标识

标志含义
nul文件已提交到版本库未做修改
??untracked 新文件尚未 git add
Astaged 已经 git add 但尚未提交
AMstaged 未提交又做限新的修改,新修改尚未staged
MM一些修改staged之后又做了新的修改,新修改尚未staged

状态转换指南

状态A -> 状态B需要的操作
nul -> M修改文件
MM -> nulgit checkout HEAD file(s) OR git checkout -- file(s)
A -> ??git rm --cached file(s)
M -> Mgit add file(s)
A -> AMgit reset file(s)
A -> nulgit reset file(s)
?? -> Agit add file(s)
A -> ??git rm --cached file(s)
A -> AMgit add 之后再修改文件
AM -> Agit checkout -- file(s)

`git rm --cached ` is a worse choice than `git update-index --assume-unchanged `

There are 3 options, you probably want #3

  1. This will keep the local file for you, but will delete it for anyone else when they pull.

    git rm cached <file-name> or git rm -r cached <folder-name>

  2. This is for optimization, like a folder with a large number of files, e.g. SDKs that probably won't ever change. It tells git to stop checking that huge folder every time for changes, locally, since it won't have any. The assume-unchanged index will be reset and file(s) overwritten if there are upstream changes to the file/folder (when you pull).

    git update-index --assume-unchanged <path-name>

  3. This is to tell git you want your own independent version of the file or folder. For instance, you don't want to overwrite (or delete) production/staging config files.

    git update-index --skip-worktree <path-name>

It's important to know that git update-index will not propagate with git, and each user will have to run it independently.