簡體   English   中英

如何使用 git 取消提交更改

[英]How do I Uncommit changes using git

我正在使用 git flow,不假思索地將代碼提交到錯誤的分支(功能),然后將其發布。

我需要獲取該代碼,將其從分支 1 中刪除,然后將其移動到正確的分支中,即分支 2。

所有文件都存儲在一個文件夾中,這可以使事情變得容易得多,我只是不確定如何進行此操作。

例如。

Branch 1 { 
  Commit That contains {
     ./path/to/files_that_should_be_here
     ./path/to/files_that_need_to_be_in_branch_2
  }
}

Branch 2 {
   No Commits.
}

如果您還沒有發布您的更改,最簡單的方法是殺死branch1最后一次提交(注意:這將完全殺死最后一次提交引入的任何內容):

git checkout branch1
git reset --hard HEAD~

然后結帳以更正分支並在那里提交您的更改。

如果您發布了更改,您仍然可以殺死最后一次提交,但是您將不得不git push --force ,您可能沒有權限這樣做,即使您這樣做了,也可能會給其他用戶帶來很多痛苦這個存儲庫的。

相反,您應該簡單地還原錯誤的更改:

git revert <bad_commit>

並在正確的分支中重做。

將提交移動到正確的分支使用

git cherry-pick commithash

在您想要將提交移動到的分支中。

並從該分支中​​刪除提交使用

git reset --hard HEAD~1

git reset --soft HEAD^ 將修改后的更改保留在您的工作樹中。

git reset --hard HEAD^ 取消提交您所做的所有更改。

暫無
暫無

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

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