2017-09-25 44 views
1

我对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"] 

我想回去调动“一些东西做”,而不必一切“拉起源升级”做了,也保持“其他的东西做”。

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

谢谢!

回答

0

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

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

  • git checkout master
  • git checkout -b my_branch
  • git cherry-pickcommit1
  • git cherry-pickcommit2

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

如果主分支是你当你做了两个提交时,你需要修改上面的命令。

  • 创建所需的特定起点,新的分支:
    • git checkout -b my_branch origin/master或其他一些SHA1哈希值,而不是origin/master
  • 做两个樱桃通过重置回原点/主采
  • 修复大师:
    • git checkout master
    • git reset --hard origin/master
  • 回到你的分支继续工作:
    • git checkout my_branch

希望这会有所帮助。

+0

感谢它的工作,我仍然有很多conflits照顾,但它做了伎俩。我只想补充一点,'git reflog show --no-abbrev my-branch'对于查看哪些提交是每个分支中的地雷非常有用 –

相关问题