我从开发人员那里继承了一些代码(来自zip文件)并且git初始化,进行了一些更改和一组签到.
现在,同一个开发人员用他的更改发布了相同的代码,并给了我另一个zip文件.
我如何合并我的更改,我有它我的git repo和他最近的更改从第二个zip文件内容?
理想情况下,我希望有一些代码可以解释我的更改和开发人员最近的更改.
我尝试从我的主分支创建分支b1并在其上应用第二个zip文件内容.将这些文件提交到分支机构并执行'git checkout master; git merge b1' - 但是,我没有得到我的更改,只有他在我的主分支中的更改.
这听起来像你和你的另一个基于你在存储库中作为root提交的代码的工作.所以现在你有这个:
A - B - C - D (master)
Run Code Online (Sandbox Code Playgroud)
其他开发人员的工作也基于提交A.因此,提交它的适当位置是关闭的A.
首先在那里创建和签出一个分支:( git checkout -b his_work <SHA1 of A>或者在gitk中,只需右键单击提交并选择创建分支).
接下来,转储他的工作,并提交它.为了好,你可以这样做,git commit --author="His Name <his.email@somewhere>"以表明这是他的工作.
现在,检查你的master(git checkout master)并合并他的分支(git merge his_work).
你最终应该这样:
A - B - C - D - E (master)
\ /
X -----------
(his_work)
Run Code Online (Sandbox Code Playgroud)
只是为了解释,这是你做的:
A - B - C - D - X (his_work)
(master) ---->
Run Code Online (Sandbox Code Playgroud)
你把他的工作交给你最近的工作,然后合并它; 合并是一个快进:因为master是你合并的分支的祖先,你只需将master转移到新的提交.