git commit –c head –a --amend
-c
如果引數是小寫的-c
增補提交只能針對最後乙個提交,如果想更正好幾個提交之前的某個錯誤,則須使用git revert這個命令。
反轉已經提交的改動,使用git revert命令,此命令通過在版本庫中建立乙個「反向的」新提交來抵消原來提交的改動。
通常git會立即提交反轉結果,但是也可以通過引數-n告訴git先不要提交,這用於反轉多個提交非常有用,執行多個git revert –n命令,git會暫存所有的變更,然後做一次性提交。
做反轉操作的時候必須提供提交名稱,反轉總是按照從新到舊點的倒序來操作的,即最後的提交最先反轉,這樣可以避免一些不必要的衝突。
命令git reset可以在復位版本庫後,暫存工作目錄樹中因復位產生的與版本庫的差異,以便提交。
這對於在之前的提交中發現錯誤並需要更改時非常有用。
這是通過--soft選項
實現的,它使得git暫存所有的因復位帶來的差異,但不提交它。之後,使用者可以修改這些內容再提交,或者乾脆扔掉這些內容。
選項--hard要小心使用,該選項會從版本庫和工作目錄樹中同時刪除提交,--hard就好像版本庫中的刪除鍵,並且不可恢復。
git reset是以提交名稱作為引數的,預設值是head,可以用^和~作為提交名稱的修飾符來指定某個版本。
head^是指把版本庫復位到當前head之前的那個節點上,把head這個版本的修改扔到工作目錄樹中,
540ecb7~3是指要復位到540ecb7之前的三個節點上,即把該提交和之前的兩個提交(共三個提交)扔到工作目錄樹中。
git reset --hard head^強制復位前乙個提交。
git reset head可以用來清除已經add到快取區但是不想進一步提交的內容。
另一種方式是用git rm --cached,選項--cached表明是清除快取區,然後不動工作目錄樹。
注意git checkout filename將會刪除該檔案中所有沒有暫存和提交的改動,這個操作是不可逆的。
《版本控制之道——使用git》(pragmatic version control using git)
git分支管理策略:
git reference:
git 修改 撤銷
git status 初始狀態是,什麼都沒有修改 on branch master nothing to commit working directory clean 修改了乙個檔案fu 狀態變成 root 172.18 4.100 gitlearn git status on branch mas...
Git撤銷修改
撤銷修改 加入在readme中加入了不想要的語言,在沒提交之前,使用 git status 檢視可以得到如下 遇到這種情況可以手動刪除,也可以使用 git checkout file命令丟棄工作區的修改。如圖,新的文件中取出了新增的部分。git checkout readme.txt會遇到兩種情況。...
git 撤銷修改
命令 git checkout file 命令git checkout readme.txt意思就是,把readme.txt檔案在工作區的修改全部撤銷,這裡有兩種情況 一種是readme.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態 一種是readme.txt已經新增...