我有 2 个远程分支,dev
并且rls
. 我们目前正在dev
分公司工作。我的rls
分支是空的/未动过。我想将特定的提交(sha-1 哈希)从dev
分支rls
移动。请指导我在 Git 中做同样的事情的最佳、安全和简单的方法。
谢谢...
一种方法是使用git cherry-pick
, 来选择要在rls
分支上报告的确切提交。
有关更多信息,请参阅“谁能解释 git cherry-pick 的作用? ”。
然后就可以推rls
送到对应的远程分支了。
所以:
rls
本地分支(推送)rls
送到远程仓库如果要移动所有代码,直到特定提交到 rls 分支,请使用git merge
. 例如,
git checkout rls
git merge [SHA1 of last commit you are interested in]
如果您正在寻找某个任意提交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>