我搜索了許多與我的問題相關的答案,但他們并沒有完全按照我的意愿行事,我不知道還能如何描述它。
假設我做了一個提交remove tracking并洗掉了 10 行代碼。
我想從本質上“撤消”這個提交,但不改變分支,并讓舊的提交保持原樣。幾乎就好像我說“哦,我需要撤消這些更改”,然后我從差異的紅色部分手動復制和粘貼,然后將它們粘貼到需要去的地方,并取消這些更改。
很多時候我會做很多與拆分測驗相關的撤消/重做,這個作業流程比真正“撤消”提交要好得多。我真的只想接受最后一次提交并做相反的事情并將其放入未分級的狀態,僅此而已。
我希望它取消暫存的原因是因為通常在撤消它之后我需要對撤消進行進一步更改,這就是我不想要“實際”撤消的原因
uj5u.com熱心網友回復:
比如“我想把這個檔案恢復到 HEAD 上的樣子~”?
git checkout HEAD~ -- the-file
git reset the-file # so that it is out of the index
如果我沒記錯的話,這是新方法:
git restore --worktree HEAD~ -- the-file
如果您需要將整個內容而不是單個檔案取回,請使用.而不是the-file在食譜中。
uj5u.com熱心網友回復:
這正是git revert所做的:
給定一個或多個現有提交,還原相關補丁引入的更改,并記錄一些記錄它們的新提交。
使用--no-commitflag 和 usegit reset從暫存區域中洗掉更改。
如果您要撤消的提交是前一個提交,@eftshift0 的答案有效。git revert即使您要撤消的提交在歷史記錄中較早完成,也可以作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/477758.html
標籤:混帐
上一篇:Git:限制特定分支的范圍
