文章目錄
git add之後,想撤銷add
git add . //添加所有文件
執行完add後,想撤回add,怎麼辦?
解決辦法
git reset HEAD
git commit之後,想撤銷commit
寫完代碼後,我們一般這樣
git commit -m "本功能全部完成"
執行完commit後,想撤回commit,怎麼辦?
解決辦法
git reset --mixed HEAD^
這樣就成功的撤銷了你的commit
注意,僅僅是撤回commit操作,您寫的代碼仍然保留。
reset參數說明:
HEAD^的意思是上一個版本,也可以寫成HEAD~1
如果你進行了2次commit,想都撤回,可以使用HEAD~2
至於這幾個參數:
–mixed
意思是:不刪除工作空間改動代碼,撤銷commit,並且撤銷git add . 操作
這個爲默認參數,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一樣的。
–soft
不刪除工作空間改動代碼,撤銷commit,不撤銷git add .
–hard
刪除工作空間改動代碼,撤銷commit,撤銷git add .
注意完成這個操作後,就恢復到了上一次的commit狀態。
commit註釋寫錯了,只是想改一下注釋
順便說一下,如果commit註釋寫錯了,只是想改一下注釋,只需要:
git commit --amend
此時會進入默認vim編輯器,修改註釋完畢後保存就好了。
git添加空目錄
爲了保證項目結構完整,要提交空的文件夾 , 但是git默認是忽略空目錄的,這時候我們只需要在git 根目錄下執行如下命令
find . -type d -empty -exec touch {}/.gitignore \;
就可以上傳空的文件夾了,本質上是在空目錄裏建立了一個.gitignore文件,等文件夾中新建了文件再把它刪掉即可。
git add忽略某些文件的方法
對於未入庫文件
使用命令:touch .gitignore 創建.gitignore文件
在文件中寫入需要忽略的文件(如:*.diff),或者不遵循忽略原則的特例(文件前加“!”)
(注:只對untracked files有效)
對於已入庫的文件
使用命令:
git update-index --assume-unchanged FILENAME 路徑+文件名
若以後不想忽略該文件的修改,則輸入命令:
git update-index --no-assume-unchanged FILENAME
最後可以通過
git status
查看狀態中是否有效忽略了。