我是小白,在最近工作中一个关于git的问题挺困惑我的。在branch A上的其中一个.git下依次有三次代码提交1,2,3,我现在只想在1的基础上把3加进来,作一个测试的版本。当用git cherry-pick +3的commitId时会把2也给加进来。问别人说是要先新建一个临时的branch,在git reset 到提交1,然后在cherry-pick +3的commitId,也不知道我理解错了,还是什么的,总感觉新建一个branhc和在原来的branch效果一样啊,求懂的大神给小白我指点迷津,万分谢谢

解决方案 »

  1.   


    正如你所说,使用你的办法,将会把1,2,3合并。
    所以‘别人’建议你将branch A复制,然后恢复到1的状态,然后再合并(其实可以理解为merge)。状态如下branch A: 1, 2, 3
    ||
    branch A: 1, 2, 3
    branch temp:1, 2, 3( 拷贝branch A到branch temp)
    ||
    branch A: 1, 2, 3
    branch temp:1(branch temp恢复到状态1)
    ||
    branch A: 1, 2, 3
    branch temp:1+3(git merge A合并) ==>获得你想要的状态
      

  2.   

     谢谢楼上回复,但我发现 用git cherry-pick +3的commitId时没有把2给加进来啊?我实验了几次都是这种情况的,难道我操作错了?