3 回答

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個贊
這三個命令的用途完全不同。它們甚至都不遙不可及。
git revert
該命令將創(chuàng)建一個新的提交,以撤消對先前提交的更改。此命令將新歷史記錄添加到項(xiàng)目中(它不會修改現(xiàn)有歷史記錄)。
git checkout
此命令從存儲庫中簽出內(nèi)容,并將其放入您的工作樹中。它也可能具有其他效果,具體取決于調(diào)用命令的方式。例如,它還可以更改您當(dāng)前正在使用的分支。此命令不會對歷史記錄進(jìn)行任何更改。
git reset
這個命令有點(diǎn)復(fù)雜。實(shí)際上,根據(jù)調(diào)用方式的不同,它會做很多不同的事情。它修改索引(所謂的“暫存區(qū)”)?;蛘吒姆种ь^當(dāng)前指向的提交。此命令可能會更改現(xiàn)有歷史記錄(通過更改分支引用的提交)。
使用這些命令
如果在項(xiàng)目歷史記錄中的某個位置進(jìn)行過提交,而您以后又認(rèn)為該提交是錯誤的并且不應(yīng)該完成,那么這git revert
就是完成任務(wù)的工具。它將撤消由錯誤提交引起的更改,并在歷史記錄中記錄“撤消”。
如果您已經(jīng)在工作樹中修改了文件,但是尚未提交更改,則可以git checkout
用來檢出文件的從存儲庫復(fù)制的副本。
如果您進(jìn)行了提交,但尚未與其他任何人共享,并且您決定不希望這樣做,則可以使用它git reset
來重寫歷史記錄,以便看起來好像從未進(jìn)行過該提交。
這些只是一些可能的使用方案。還有其他一些命令在某些情況下可能會有用,并且以上三個命令也有其他用途。

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個贊
假設(shè)您有提交:
C
B
A
git revert B會創(chuàng)建一個撤消。中的更改的提交B。
git revert A,將創(chuàng)建一個撤消中的更改的提交A,但不會涉及到中的更改B
請注意,如果中的更改B取決于中的更改A,A則無法還原。
git reset --soft A,將更改提交歷史記錄和存儲庫;暫存和工作目錄仍處于狀態(tài)C。
git reset --mixed A,將更改提交歷史記錄,存儲庫和登臺;工作目錄仍處于的狀態(tài)C。
git reset --hard A,將更改提交歷史記錄,存儲庫,登臺和工作目錄;您將回到A完全的狀態(tài)。

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個贊
git revert
用于撤消先前的提交。在git中,您無法更改或刪除較早的提交。(實(shí)際上,您可以,但是可能會導(dǎo)致問題。)因此,revert不會編輯較早的提交,而是引入了一個新的提交,該提交會撤銷較早的提交。git reset
用于撤消工作目錄中尚未提交的更改。git checkout
用于將文件從其他提交復(fù)制到當(dāng)前工作樹。它不會自動提交文件。
- 3 回答
- 0 關(guān)注
- 1920 瀏覽
添加回答
舉報