我有一个演示分支和一个主分支。
当我在演示分支上时,我输入
git merge master
它说:
已经是最新版本了。
但是当我执行以下操作时
git diff master demo
它显示有数千个文件是不同的。
我想让git从 master re-merge 到 demo,同时保留在 demo 中已经存在的更改,比如 "demo" 标题等等。在正确合并(替换)更改了的 library 的同时进行。
我有一个演示分支和一个主分支。
当我在演示分支上时,我输入
git merge master
它说:
已经是最新版本了。
但是当我执行以下操作时
git diff master demo
它显示有数千个文件是不同的。
我想让git从 master re-merge 到 demo,同时保留在 demo 中已经存在的更改,比如 "demo" 标题等等。在正确合并(替换)更改了的 library 的同时进行。
你想要做的是变基操作(rebase):
git rebase origin/master
解释:
演示分支是这样的:
demo = old-master + some_changes
Git rebase会用新的"master"分支替换旧的分支,并保留演示所做的更改。
最终,您将拥有:
demo = master + some_changes
demo
分支仍将与 master
分支不同。 - ashmaroli我想把git重新合并master到demo中,
同时保留demo中的更改,如果他想让demo等于master,可以执行 git reset --hard origin/master
。 - Akram Faresgit reset --hard origin/master
!所有在 demo
中的更改都将丢失! - ashmaroligit rebase origin/master
给你想要的结果了吗? - ashmarolidemo
分支与master
不同,那么除非在此期间合并了另一个分支到master
中,否则master
中的所有提交记录都已存在于demo
中。demo
中的更改合并到master
中,则需首先切换到master
,然后再合并demo
。git merge demo
"Already up-to-date."
means, there are no changes in master
to be merged into demo
- ashmarolimaster
中没有你在demo
中没有的更改。git diff master demo
只显示了你在demo
中相对于master
所做的更改。 - Ostap Maliuvanchukdemo
中的更改,例如demo
标题等。 - ashmaroli经过努力和分析诸如git合并策略之类的东西,我最终做到了。
https://git-scm.com/docs/merge-strategies
这是手动合并,步骤如下:
git add --all
git commit -m "手动合并"
git push
git checkout master && git pull
命令以进行操作。 - Ostap Maliuvanchuk