合并到分支中,在下一次推送中丢失了提交

时间:2018-10-19 09:38:51

标签: git git-merge

早晨,

我的问题如下:

有一个我必须还原的主提交和推送,我要求用户然后为他的提交创建一个分支,以便我可以将其与拉取请求合并,一切正常,合并到我的主分支中并删除了该分支

我还必须将这个母版合并到开发中,这样才能使两者对齐,这样做可以看到之前的合并文件已“消失”到我的母版中,如果现在我克隆它不会显示的存储库我与该合并请求合并的文件。

运行git日志,我得到以下信息:

* f9f9137 (HEAD -> master, origin/master, origin/layout, origin/develop, develop) Version 3.1.73
*   f81b163 Merge branch 'master' into develop
|\  
| *   6c73f7b Merge branch 'feature/TimesheetReminder' into 'master'
| |\  
* | | 1a05d2f Revert "Timesheet reminder version 1"
| |/  
|/|   
* | 83d082a Timesheet reminder version 3
* | d22ed67 Timesheet reminder version 1
* |   4e71765 Merge branch 'feature/checkboxes' into 'develop'
|\ \  
| |/  
|/|   
| * 98c090b bugs fixed
| * bb3238c open tabs corrected
| * 4e5feb4 checkboxes + buttons added to homepage
|/  
* cf357ee Edited browser icon
* 84a9050 Version 3.1.72
* 5adf3c0 Modified resources and added logo with the GhostForce name
* ec2a99a Version 3.1.71
* 14b8626 Modified assets and changed KB link.

d22ed6783d082a是2个错误的提交,我回复到d22ed67,因为它只有一个很小的添加可以保留,然后用户创建了一个新分支并提交拉取请求:6c73f7b,然后我将其合并到我的主请求中,然后运行了git checkout develop && git merge master

现在,如果我进入母版,则看不到1a05d2f中的添加内容,但是如果浏览具有该ID的存储库,则可以看到所有正确添加的文件。

这里可能是什么问题,我做错了什么?

1 个答案:

答案 0 :(得分:0)

您提到了 d22ed67 and 83d082a were the 2 wrong commits

由于这些提交之上的提交很少,因此更好的方法(如果我遇到问题,我更愿意这样做!)

git log --oneline -20 
git reset --hard 4e71765
git cherry-pick 1a05d2f
git cherry-pick 6c73f7b
git cherry-pick f81b163
git cherry-pick f9f9137
git log --oneline -20 

git log是必需的,因为您可能会错过任何提交ID,您可以从那里获取它,并避免混淆。还要一个个地摘樱桃。

此外,如果您在选择樱桃时遇到任何冲突-

  • 解决冲突(可能有解决冲突的方法)
  • 然后添加更改的文件(即使已添加)
  • 进行提交
  • 然后放入git cherry-pick --continue
  • 之后,继续挑选其他所有提交。

注意
1.请请勿使用merge命令。使用rebase
2.请请勿使用pull命令。使用fetch,然后使用rebase

开心的烦恼!!