3 回答

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果您尚未推動(dòng)更改, git reset --hard HEAD^
否則,還原還原就可以了。
另一種方法是git checkout HEAD^^ -- .,然后git add -A && git commit。

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
git cherry-pick <original commit sha>
將復(fù)制原始提交,實(shí)質(zhì)上重新應(yīng)用提交
還原還原將執(zhí)行相同的操作,并帶有更復(fù)雜的提交消息:
git revert <commit sha of the revert>
這兩種方式都將允許您git push不覆蓋歷史記錄,因?yàn)樗鼤?huì)在還原后創(chuàng)建一個(gè)新的提交。
輸入commit sha時(shí),通常只需要前5個(gè)或6個(gè)字符:
git cherry-pick 6bfabc

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
還原提交就像git中的任何其他提交一樣。意思是,您可以還原它,如下所示:
git revert 648d7d808bc1bca6dbf72d93bf3da7c65a9bd746
顯然,只有在推送更改后才有意義,尤其是當(dāng)您無法強(qiáng)制將其推送到目標(biāo)分支時(shí)(這對(duì)于您的master分支是個(gè)好主意)。如果尚未推送更改,請(qǐng)按照其他帖子的說明進(jìn)行選擇,還原或僅刪除還原提交。
在我們的團(tuán)隊(duì)中,我們有一條規(guī)則,即對(duì)主分支中提交的“還原”提交使用“ 還原 ”,主要是為了保持歷史記錄的清潔,以便您可以看到哪個(gè)提交還原了什么內(nèi)容:
7963f4b2a9d Revert "Revert "OD-9033 parallel reporting configuration"
"This reverts commit a0e5e86d3b66cf206ae98a9c989f649eeba7965f.
...
a0e5e86d3b6 Revert "OD-9055 paralel reporting configuration"
This reverts commit 648d7d808bc1bca6dbf72d93bf3da7c65a9bd746.
...
Merge pull request parallel_reporting_dbs to master* commit
'648d7d808bc1bca6dbf72d93bf3da7c65a9bd746'
這樣,您可以追溯歷史并弄清楚整個(gè)故事,即使那些不了解遺產(chǎn)的人也可以自己解決。而如果您隨意挑選或重新編排內(nèi)容,則這些有價(jià)值的信息將會(huì)丟失(除非您將其包括在注釋中)。
顯然,如果一次提交的還原和重新還原不止一次,則將變得非?;靵y。
- 3 回答
- 0 關(guān)注
- 1126 瀏覽
添加回答
舉報(bào)