一般,大部分時間咱們都只會用到add、commit、branch和push/pull這些命令。但若是本身往倉庫中添加了錯誤的文件,或是將代碼提交到了錯誤的分支,並且提交信息還寫錯了的話,本身怎樣才能取消以前的操做?git
下面這個命令可讓你編輯最近一次的提交信息編輯器
$ git commit --amend -m 」YOUR-NEW-COMMIT-MESSAGE」
下面的命令強制推送此次的代碼提交指針
$ git push <remote> <branch> --force
git add
若是你往暫存區(staging area)中加入了一些錯誤的文件,可是尚未提交代碼。你可使用一條簡單的命令就能夠撤銷code
$ git reset <文件名>
或者若是你想從暫存區移除全部沒有提交的修改:索引
$ git reset
有時候你可能會不當心提交了錯誤的文件或一開始就遺漏了某些東西rem
$ git reset --soft HEAD~1 $ git add -A . $ git commit -c ORIG_HEAD
行第一個命令時,Git會將HEAD指針後移到此前的一次提交,以後你才能移動文件或做必要的修改。it
而後你就能夠添加全部的修改,並且當你執行最後的命令時,Git會打開你的默認文本編輯器,其中會包含上一次提交時的信息文本編輯器
「撤銷」(revert)在許多狀況下是很是有必要的——尤爲是你把代碼搞的一團糟的狀況下推送
$ git checkout <SHA>
<SHA>
是你想查看的提交擁有的哈希值(Hash Code)中前8至10個字符移動
這個命令會使<HEAD>指針脫離(detach),可讓你在不檢出(check out)任何分支的狀況下查看代碼
要想撤銷合併,你可能必需要使用恢復命令(HARD RESET)回到上一次提交的狀態。「合併」所作的工做基本上就是重置索引,更新working tree(工做樹)中的不一樣文件,即當前提交()代碼中與HEAD遊標所指向代碼之間的不一樣文件;可是合併會保留索引與working tree之間的差別部分(例如那些沒有被追蹤的修改)
$ git checkout -b <SHA>
假設你湊巧有一些未被追蹤的文件(由於再也不須要它們),不想每次使用git status命令時讓它們顯示出來
$ git clean -f -n #1 // 選項-n將顯示執行下面的命令時將會移除哪些文件 $ git clean -f #2 // 該命令會移除全部上面的命令中顯示的文件 $ git clean -fd #3 // 若是你還想移除文件件,請使用選項-d $ git clean -fX #4 // 若是你只想移除已被忽略的文件,請使用選項-X $ git clean -fx #5 // 若是你想移除已被忽略和未被忽略的文件,請使用選項-x
$ git branch --delete --force <branchName> // 刪除本地分支 $ git push origin --delete <branchName> // 刪除遠程分支