从特定提交开始新分支(并删除旧分支)

时间:2017-09-25 16:04:10

标签: git github version-control commit

我对Git很新,我作为实习生加入了一家公司。我(愚蠢地)通过拉动我们的临时环境来启动我的所有分支。因此,当我在github上进行比较时,有一百个提交,然后是地雷。 问题在于,将这些分支推到主人身上有太多的冲突。

这就是为什么我拼命想要找到一种方法从特定的提交中启动一个分支,而没有前一个(即那些来自分段拉)的那些,只有最新的。 例如:

git pull origin staging
[I did my stuff]
git commit -m "some stuff done"
[some other stuff]
git commit -m "other stuff done"]

我想回到“完成一些事情”的提交,而没有“拉动起源阶段”所做的一切,并保持“完成其他工作”。

我已经检查并尝试了default_scope is evil上的解决方案,但它仍保留旧提交。

谢谢!

1 个答案:

答案 0 :(得分:0)

这听起来像是需要git cherry-pick的情况。

我会回到主人,我明白你希望你的分支从一开始,创建一个新的分支,然后樱桃挑选你的提交。

  • git checkout master
  • git checkout -b my_branch
  • git cherry-pick commit1
  • git cherry-pick commit2

其中 commit1 commit2 是第一次和第二次提交的sha1哈希值。

如果主分支是您执行两次提交时的位置,则需要稍微修改上述命令。

  • 从您想要的特定起点创建新分支:
    • git checkout -b my_branch origin/master或其他一些sha1哈希而不是origin/master
  • 做两个樱桃选择
  • 通过将master重置为origin / master来修复master:
    • git checkout master
    • git reset --hard origin/master
  • 回到你的分行继续工作:
    • git checkout my_branch

希望这有帮助。