Git之道

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    

查看狀態中是否有效忽略了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章