簡體   English   中英

使用Visual Studio在git中還原提交后如何重新提交代碼

[英]How to resubmit code after the commit was reverted in git with visual studio

我不得不還原提交。 現在,我修復了代碼,我想用我已更改的文件以及已更改的原始文件創建請求請求。 但是,只有第一次提交以來的文件才會顯示在拉取請求中。 我如何告訴git也更新原始文件?

我基於固定分支創建了一個新分支,但即使新分支中的文件正確,它也忽略了原始提交中的文件。

我將從上一次提交開始創建一個新分支,然后執行以下操作:

  1. 還原revert ,即:還原還原更改時創建的提交。
  2. 介紹新的更改。 如果已經有了它們,則可以選擇這些更改。
  3. 現在,創建拉取請求:這些將包括還原還原的更改和您所做的新更改。

旁注 :如果可能的話,我總是更喜歡重置分支而不是還原更改,特別是如果我知道有一天需要重新整合它們。 如果要恢復的提交是最后一次提交並且最近已推送,那么重置分支是一個好主意,因此希望沒有人下載它。

聽起來您可以使用squash合並提交。 為此,請看一下交互式rebase 如果您尚未推送更改,這尤其優雅,因為您基本上可以撤消兩個還原提交,以避免在主存儲庫中造成混亂。

另外請記住,您始終可以檢出文件上的增量,並僅暫存所需的更改:

git checkout <branch> -- <filename>

以下是還原提交並在單個“還原”提交中進行更改的過程:

  1. 創建一個示例提交

     /mnt/c/git/ConsoleApp1 (master)>echo Text > x.txt /mnt/c/git/ConsoleApp1 (master)>git add --all /mnt/c/git/ConsoleApp1 (master)>git commit -am "A commit" [master 07852fa] A commit 1 file changed, 1 insertion(+) create mode 100644 x.txt 
  2. 創建一個還原提交,以還原示例提交並添加額外的更改

     /mnt/c/git/ConsoleApp1 (master)>git checkout -b feature/with_revert Switched to a new branch 'feature/with_revert' /mnt/c/git/ConsoleApp1 (feature/with_revert)>git log -n1 commit 07852fac90b5debcfdd3ea67c282c1fee77e59e6 Author: Tymtam Date: Tue Aug 21 13:28:21 2018 +1000 A commit /mnt/c/git/ConsoleApp1 (feature/with_revert)>git revert --no-commit 07852fac90b5debcfdd3ea67c282c1fee77e59e6 /mnt/c/git/ConsoleApp1 (feature/with_revert|REVERTING)>git status On branch feature/with_revert You are currently reverting commit 07852fa. (all conflicts fixed: run "git revert --continue") (use "git revert --abort" to cancel the revert operation) Changes to be committed: (use "git reset HEAD <file>..." to unstage) deleted: x.txt /mnt/c/git/ConsoleApp1 (feature/with_revert|REVERTING)>echo Text2 > y.txt /mnt/c/git/ConsoleApp1 (feature/with_revert|REVERTING)>git add y.txt /mnt/c/git/ConsoleApp1 (feature/with_revert|REVERTING)>git status On branch feature/with_revert You are currently reverting commit 07852fa. (all conflicts fixed: run "git revert --continue") (use "git revert --abort" to cancel the revert operation) Changes to be committed: (use "git reset HEAD <file>..." to unstage) deleted: x.txt new file: y.txt /mnt/c/git/ConsoleApp1 (feature/with_revert|REVERTING)>git commit [feature/with_revert 902e37f] Revert "A commit" + changes 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 x.txt create mode 100644 y.txt /mnt/c/git/ConsoleApp1 (feature/with_revert)>git log -n2 commit 902e37f76cabe0e144e091344e8c11ab6dd5213b Author: Tymek Majewski <tymek@redbacktech.com> Date: Tue Aug 21 13:29:30 2018 +1000 Revert "A commit" + changes This reverts commit 07852fac90b5debcfdd3ea67c282c1fee77e59e6. commit 07852fac90b5debcfdd3ea67c282c1fee77e59e6 Author: TymTam Date: Tue Aug 21 13:28:21 2018 +1000 A commit 

暫無
暫無

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

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