首先你要知道 git 區(qū)分暫存區(qū)和工作區(qū),如果你用過 sourcetree 你就會(huì)知道
git reset 超級(jí)好用
git reset
命令用于將當(dāng)前分支的 HEAD 指針移動(dòng)到指定的提交,并且可以選擇性地修改工作區(qū)和暫存區(qū)的狀態(tài)。git reset
命令有幾種常用的用法,主要包括:
-
git reset --soft <commit-id>:?被 reset 的提交會(huì)放到暫存區(qū),暫存區(qū)原來的內(nèi)容不會(huì)變化,同時(shí)不影響工作區(qū);這個(gè)選項(xiàng)通常用于撤銷之前的提交,但保留更改以供稍后提交。????????
- 可以通過 git log 查看 id,git 基于指定的提交 id 來移動(dòng) head 指針,并且撤銷這個(gè)提交之后的所有更改。
- 可以使用 head 替換提交 id 代表撤銷最近一次提交
-
git reset --mixed?head~n:? 清空暫存區(qū),被?reset 的提交會(huì)放到工作區(qū),并和當(dāng)前工作區(qū)的改動(dòng)進(jìn)行合并,有相同的改動(dòng),以工作區(qū)的改動(dòng)為準(zhǔn),即不改動(dòng)工作區(qū)的狀態(tài);這意味著之前的提交所做的更改都會(huì)被放到工作區(qū)?!?strong>reset 不增加參數(shù),?默認(rèn)使用mixed】
- n 代表相對(duì)于你當(dāng)前 head 指針的偏移量
- 可以是任何數(shù)字,1 代碼最近一次提交,2 代碼最近 2 次提交,以此類推
- 但是 n 如果大于所有提交的數(shù)量,就會(huì)報(bào)錯(cuò)
- 不可以不寫 ~n,至少是 ~1,不信你試試
- 可以使用這個(gè) reset 命令 撤銷 git add 的操作,也就是把暫存區(qū)的文件放回工作區(qū)
- git reset --hard head~n: reset 之后暫存區(qū)和工作區(qū)狀態(tài)都會(huì)被清空,會(huì)丟棄之前的提交的內(nèi)容,所以不要用?。『芪kU(xiǎn),除非使用 git reflog 能找回來,但是 git reflog 有保存期限,時(shí)間久了 reflog 的內(nèi)容也會(huì)清理,所以就永遠(yuǎn)找不到了。
git revet 功能
git revert
命令用于撤銷一個(gè)或多個(gè)提交所做的更改,并創(chuàng)建一個(gè)新的提交來記錄撤銷的操作
-
git log: 使用 git log 查看提交歷史,確定需要撤銷的提交的ID
- git revert <commit-id>:指定要撤銷的提交 ID,會(huì)創(chuàng)建一個(gè)新提交并將所做的更改撤銷掉
-
:
-
- git revert head: 撤銷最近一次提交
- git revert <commit-id1>..<commit-id2> :撤銷多個(gè)提交,可以指定一個(gè)范圍
-
解決沖突(如果有): 在執(zhí)行
git revert
命令時(shí),如果發(fā)生了沖突(例如,撤銷的提交與當(dāng)前分支上的其他更改沖突),Git 會(huì)提示你解決沖突。解決完沖突后,可以使用git add
命令將解決后的文件標(biāo)記為已解決,然后執(zhí)行git revert --continue
完成撤銷操作。 -
提交撤銷的更改: 最后,執(zhí)行
git revert --continue
完成撤銷操作,并將撤銷的更改作為一個(gè)新的提交提交到倉庫中。 - 如果你不想繼續(xù)撤銷操作,可以執(zhí)行
git revert --abort
命令來取消撤銷操作。
使用 git revert
命令可以安全地撤銷提交,并且不會(huì)修改提交歷史,因此適合在公共分支上使用。
git reset 和 git revert 對(duì)比
-
git reset:
-
git reset
主要用于修改分支的 HEAD 指針,可以將分支的 HEAD 指針移動(dòng)到指定的提交,并且可以選擇性地修改暫存區(qū)和工作區(qū)的狀態(tài)。 -
git reset
常用于本地分支操作,它會(huì)修改分支的提交歷史,因此在團(tuán)隊(duì)協(xié)作中應(yīng)謹(jǐn)慎使用,避免造成提交歷史混亂。 -
git reset
通常用于撤銷已提交的更改,或者將暫存區(qū)和工作區(qū)的狀態(tài)回退到之前的狀態(tài)。
-
-
git revert:文章來源:http://www.zghlxwxcb.cn/news/detail-830635.html
-
git revert
用于撤銷一個(gè)或多個(gè)提交所做的更改,并且會(huì)創(chuàng)建一個(gè)新的提交來記錄撤銷的操作。 -
git revert
不修改分支的提交歷史,而是在原來的提交歷史上創(chuàng)建一個(gè)新的撤銷提交,因此它更適合用于公共分支上的撤銷操作,不會(huì)影響其他開發(fā)者的提交歷史。 -
git revert
通常用于撤銷已經(jīng)發(fā)布到公共分支的提交,或者撤銷錯(cuò)誤的提交并保留提交歷史的完整性。
-
總的來說,git reset
用于修改分支的提交歷史和工作區(qū)狀態(tài),而 git revert
用于創(chuàng)建一個(gè)新的撤銷提交來記錄撤銷的操作,不修改提交歷史。選擇使用哪個(gè)命令取決于具體的情況和需求。文章來源地址http://www.zghlxwxcb.cn/news/detail-830635.html
到了這里,關(guān)于【git 使用】超級(jí)好用的 git reset 和 git revert 功能對(duì)比和使用方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!