[英]Git ignores changes on branch when merging to master
假設我有分支“暫存”,並且我在其上創建了一些文件並提交了它們。 我不小心將“暫存”分支合並到 master 分支。
因為現在合並還為時過早(我在“暫存”分支上還有工作要做),我嘗試恢復合並提交(使用git revert
;我不知道確切的命令,因為我使用了 PyCharm 的 Git UI)。 現在這些更改在“主”分支上恢復,一切都很好。
在“暫存”分支上完成工作后,我嘗試使用以下命令將其合並到 master:
git checkout master
git pull
git merge staging
這是 git 的回應:
Auto-merging app/static/css/style.bundle.rtl.css
CONFLICT (content): Merge conflict in app/static/css/style.bundle.rtl.css
Removing app/static/js/main.js
Removing app/static/css/util.css
..
(All of my new files were listed here as removed)
..
Removing app/static/css/main.css
Automatic merge failed; fix conflicts and then commit the result.
由於舊的合並提交的還原,git 已將我對預先存在的文件的所有更改檢測為沖突,並刪除了所有新文件。
我通過git merge --abort
中止了這個操作,現在我的文件都回來了。 但是我被卡住了,無法將此分支合並到 master 中。 我該怎么辦?
我試過:
git merge staging -X theirs
,但這忽略了其他開發人員在 master 上所做的所有更改git checkout staging && git merge master -s ours
,與上述相同的問題當你恢復時,你告訴 Git 你不想要這些更改(永遠(再次))。 這也意味着將分支與還原合並將刪除這些更改或不再合並它們。
換句話說:合並時,只合並“新”更改,而不是舊更改(即分支開始之前的更改)。
如果您決定確實需要還原的更改,則必須還原還原,例如
git checkout branch
git revert hash-of-revert-commit
git checkout master
git merge branch
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.