[英]Possible to apply all changed files from 2 commits?
我有2次提交(A和B),我想恢復代碼以提交A,但是我想將提交B中所有更改的文件應用到提交A。
可能嗎?
是的,有可能; 但是有一兩個警告。
如果您已將提交A或B發布到共享存儲庫,則這樣做將給其他用戶帶來麻煩。 如果您在A或B的“下游”有其他提交,則需要進行額外的工作以使所有內容保持一致。 由於git存儲信息的方式,在任何一種情況下修改提交本質上都是破壞性的。
但是,如果兩者都不是,則使用git rebase
相當簡單。 就像是
git rebase --interactive A^
這將顯示一個帶有基准“待辦事項”列表的編輯器,以及有關如何編輯待辦事項列表的說明。 您將把B的指示從拾取改為壁球或固定。
一種選擇是重置為在提交A之前提交並再次提交。 請記住,您需要在此處進行軟重置。
假設您具有這種提交層次結構
HEAD
|
N -> A -> B
git reset --soft HEAD~2
git status
如果您已將工作推送到遠程倉庫,則可能需要force push
才能將更改推送到遠程倉庫。
請記住:強行將更改推到遠程將覆蓋您在遠程倉庫中的工作。 小心。
git reset HEAD^^ // reset to front HEAD contain A and B's source
git add . // add A and B's source to new commit
git commit -m "A message" // commit A and B's source and add commit message
首先通過以下方式找出在特定提交(供參考)中修改的文件:
git show --pretty="" --name-only COMMIT_ID
要還原任何特定的提交ID,請使用:
git revert COMMIT_ID
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.