如何将当前分支合并到另一个分支
我有两个分支,master和dev。 我一直在dev上工作,一旦批准生产使用,只检查主分支的代码。 当我这样做时,我必须做到以下几点:
git checkout master git merge dev git checkout dev
这非常冗长,而且由于我经常这样做,我想尽量减less它。 是否有任何一个git命令我可以用来从我当前的分支机构合并到另一个分支主机而不必首先检查主分支? 可能是这样的:
git merge dev to master
会很棒。 我浏览了git文档,没有看到任何东西。
1.为本地存储库添加一个远程别名,例如:
git remote add self file:///path/to/your/repository
(或者在Windows上git remote add self C:\path\to\your\repository
)
2.推到自己的遥控器,例如:
git push self dev:master
@zerome当前最高票数的答案是一个很好的答案,但有点不必要的冗长。
在你的git仓库的基础上,你可以这样做: git push . dev:master
git push . dev:master
在树中任何地方工作的更广义的解决scheme将是:
git push $(git rev-parse --show-toplevel) dev:master
你最好的select是使用一个别名,放在你的全局gitconfig( ~/.gitconfig
)中:
[alias] merge-to = "!f() { git checkout $1 && git merge $2 && git checkout -; }; f"
以便您可以从任何存储库中调用它
git merge-to master dev
Jefromi别名稍作修改,不需要input当前分支。
所以你使用它: git merge-to dev
。
这将切换到dev
分支,与CURRENT合并,然后将切换回来。
例如,假设你在master
分支上,它将把master合并到dev中,你仍然在master上。
它绝对去我的dotfiles 🙂
[alias] merge-to = "!gitmergeto() { export tmp_branch=`git branch | grep '* ' | tr -d '* '` && git checkout $1 && git merge $tmp_branch && git checkout $tmp_branch; unset tmp_branch; }; gitmergeto"
这是旧的,但…
结合上面的@ kevin-lyda和@ dmytrii-nagirniak的解决scheme。 这个别名将当前分支合并到指定的分支中。 它使用远程方法并使用git命令来获取上下文。
[alias] merge-to = "!gitmergeto() { git push \"`git rev-parse --show-toplevel`\" `git rev-parse --abbrev-ref HEAD`:$1; } && gitmergeto"
要使用像:
git merge-to other-branch-name
你很多时候想从分支中合并当前分支。 在这种情况下,你可以这样做:
git co - && git merge @{-1}
例如:
git checkout somebranch // (while on master) // add some commits git co - && git merge @{-1} // will merge somebranch into master