合并到git中的分支而不切换到它

时间:2011-07-01 12:38:04

标签: git merge git-merge

我有一个应用程序在分支上的git存储库中运行(比如dev)。应用程序修改某些存储库中的内容并提交它们。我现在必须将这些更改合并到另一个分支(比如master),但问题是在执行此操作之前我不想git checkout master。有没有办法说“将当前分支合并为主”?

4 个答案:

答案 0 :(得分:30)

您案例中的“主人”似乎是“快速转发”。你可以“推”分支到掌握。

cd /path_to_dir_with_no_branch_switch/
git push . appbranch:master

答案 1 :(得分:3)

一种可能的解决方案是克隆存储库并在所述克隆中执行合并(检出master),从而能够解决那里的潜在冲突。

然后,在以后的日期,当能够在第一个回购中签出master时,您将从克隆中提取更新的主分支。

答案 2 :(得分:3)

当我想要合并两个分支而不必检查其中任何一个时,这对我来说非常有效:

git fetch . <modified branch>:<destination branch>

其他选项描述为here

答案 3 :(得分:1)

即使你的分支不能快速转发,即使它有真正的冲突,你仍然可以在没有完整结账的情况下进行合并。假设您想将当前提示 dev 合并到 master。值得尝试 git push . dev:master 如果您认为它可能有效,它会检查快进是否是正确的移动,如果是,那么它就在那里,但是如果您不能只是重新挂上标签,您的下一步是< /p>

git clone -nsb master . `mktemp -d`
cd $_
git reset -q
git merge origin/dev
git push
cd -

您现在已经完成了“最少结账合并”。克隆、cd 和重置运行所需的时间比在 10 年历史的中端上键入一个不小的项目(3.5G 历史,1.2G 完整检出 >70K 文件)所需的时间要少,因为它不重复任何东西。