[英]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.