簡體   English   中英

GIT:忘了承諾並做出了新的改變。 如何撤消新更改,然后提交重做更改?

[英]GIT: forgot to commit and have made new changes. How to undo new changes, commit then redo changes?

我有一個文件,我應該承諾,但忘了一切。 我繼續對文件進行更多更改。 我想要做的是恢復到我應該提交的位置,在那時做一個提交,但仍然得到我的新更改。 我如何以最經濟的方式做到這一點?

謝謝。

編輯:只是解釋一下流程。

  • 我有file.php已經提交並處於工作狀態。
  • 我對file.php進行了更改,這是file.php的新生產副本。 此文件提交,但應該是。
  • 我對file.php進行了更多更改,並記住我想提交file.php。

我現在要做的是保存我最近的更改(因此git stash可能在這里派上用場,謝謝!)回到第二個項目點,提交,然后繼續。 有沒有辦法達到中間未提交的觀點?

進一步編輯:

我認為我不能解釋的是,上面的第二點沒有提交。 在該狀態中,它不屬於先前的提交,而是屬於尚不存在的新提交。

您無需撤消更改,只需使用git add --interactive

如果通過“忘記提交”你的意思是忘記“推”,那么...有希望:)

如果您已將之前的更改提交到本地git倉庫,則可以使用git stash將新更改保存在“存儲”中並還原它們。 (您可以使用相同的命令從存儲中恢復更改..請參閱鏈接)

如果你還沒有提交,你可以使用git stash:

git stash
git add newfile
git commit --amend # update old commit that should have had the file added
git stash pop # unsaved changes restored and merged

否則,您需要立即提交文件,隱藏所有其他更改,並使用git rebase --interactive將提交移回到歷史記錄中的位置。

請注意,如果您已被推送,這將導致其他人出現問題 - 在這種情況下,您可能只是提交現在的位置。

如果這只是之前的提交,您可以隨時修改它。 否則最經濟的方法就是單獨提交文件。 除非您有特殊原因不這樣做,否則這樣做是沒有害處的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM