将特定提交从一个远程分支推送到另一个远程分支

时间:2013-05-09 03:22:38

标签: git github gerrit

我有2个远程分支,devrls。我们目前正在研究dev分支机构。我的rls分支是空的/未触及的。我想将特定提交(sha-1哈希)从dev移动到rls分支。请指导我在Git中做到最好,安全和简单的方法。

...谢谢

3 个答案:

答案 0 :(得分:2)

一种方法是使用git cherry-pick,以便选择要在rls分支上报告的确切提交。

有关详情,请参阅“Can anyone explain what git cherry-pick does?”。

然后您可以将rls推送到相应的远程分支。

所以:

  1. 在本地挑选,以便拥有一个rls 本地分支,看起来像你要发布的内容(推送)
  2. rls推送到远程仓库

答案 1 :(得分:1)

如果要将所有代码移动到rls分支的特定提交,请使用git merge。例如,

git checkout rls
git merge [SHA1 of last commit you are interested in]

答案 2 :(得分:1)

如果您正在寻找rls作为某个任意提交的dev分支的快照,您可以使用git reset将分支指针移动到您要查找的提交。确保在执行此操作时没有未分期更改。

git checkout rls  
git reset --hard <SHA-1 of commit in dev>

示例
如果dev看起来像:

A - B - C - D

,您希望rls看起来像:

A - B
你会做的

git checkout rls
git reset --hard <sha-1 of B>

但是,如果要选择要推送到rls的更具体的提交范围,则需要使用git cherry-pick命令。

git checkout rls
git cherry-pick <non-inclusive-starting-SHA1>..<inclusive-ending-SHA1>