【发布时间】:2016-05-12 12:03:02
【问题描述】:
我有 'develop' 和 'InitialPomChanges' 分支。我想将develop分支的所有内容复制到InitialPomChanges分支。
【问题讨论】:
-
我投票决定将其作为Copy changes from one branch to another的副本关闭
标签: git git-branch
我有 'develop' 和 'InitialPomChanges' 分支。我想将develop分支的所有内容复制到InitialPomChanges分支。
【问题讨论】:
标签: git git-branch
假设您想用 develop 中的内容覆盖 InitialPomChanges 的所有内容(即您希望 InitialPomChanges 的内容与 develop 完全匹配),请执行以下操作:
git checkout InitialPomChanges
git checkout develop . #copies the contents of develop into the working directory
git commit -am "Making InitialPomChanges match develop"
这将使 InitialPomChanges 中的最后一次提交与开发中的最后一次提交匹配。为了使两个分支之间的未来合并更容易,现在做一个git merge develop 是个好主意。
或者,如果您想更改 InitialPomChanges 的内容并在一次提交中进行合并,您可以这样做:
git checkout InitialPomChanges
git merge -s theirs develop
【讨论】:
您可以使用git merge 或git rebase
如果你在 InitialPomBranch 上,你可以简单地运行
git merge develop
或
git rebase develop
第一个会将开发分支的所有提交合并到 InitialPomBranch。第二个会将develop分支的所有提交放在InitialPomBranch的第一个提交之下
编辑:Rebase 将更改 InitialPomBranch 的所有提交的 SHA 哈希值。所以你必须运行
git push -f origin InitialPomBranches
推送所有更改
【讨论】:
git rebase(或一般情况下强制推送)可能会影响其他贡献者;考虑他们是否也被期望变基以及合并是否更合适。
git rebase develop 会将当前分支的提交重播到 develop,这与用户想要的相反。此外,git rebase 将当前分支移动到新的目的地,这几乎肯定不是用户想要做的。在这种情况下,我会避免变基。
$ git merge develop
确保您当前的分支是 InitialPomChanges
【讨论】:
你可以跑
git checkout develop
git branch -D InitialPomChanges
git checkout -b InitialPomChanges
这将清除 InitialPomChanges 分支,并创建一个包含 develop 的所有内容的新 InitialPomChanges 分支。
【讨论】:
我当前的分支是develop,我想将我的内容复制到main 分支
所以我尝试了
git merge main
这给了我一个错误,因为我的主分支是空的
fatal: refusing to merge unrelated histories
所以我尝试了这个命令
git merge main --allow-unrelated-histories
然后我同步了所有更改(在 vs 代码中查看左下角,您将在分支名称右侧看到此图标) 成功了
【讨论】: