我在分支developmentV2
中有一个代码库。
从developmentV2
我创建了一个分支rahulV2
,如下所示。
git checkout -b rahulV2 developmentV2
git push origin/rahulV2
我在rahulV2
分支中进行了一些更改。在将其推送到rahulV2
分支之前,如果有人将某些代码推送到developmentV2
,我希望从developmentV2
更新代码
所以我将更改保存在rahulV2
中。
git stash
如果我要使用
git pull
它将从origin/rahulV2
中撤出。
我想提取developementV2
代码,以便更新rahulV2
,并在推送代码后将rahulV2
的更改合并到developmentV2
分支。
请帮助我解决这个问题。
答案 0 :(得分:2)
有两种接受的方法可以用父分支(或实际上是任何其他分支)更新分支。这是:合并和变基。
变基: 变基意味着您更改了提交的历史记录。 在Git中,每个提交都有一个父提交。 rebase所做的是将分支的第一个提交(分支启动时)的父提交更改为您依据的分支的最后一个提交。这会更改提交的历史记录,但看起来更简洁。 这样做的方法是:
git checkout developementV2
git pull # to make sure you rebase onto the updated version
git checkout rahulV2
git rebase developementV2
合并:
使用这种方法,您无需更改提交的历史记录。所有这一切都是使用分支和基础分支(在这种情况下为developmentV2
和rahul2
)中的更改创建一个新的提交。合并比重新设置没有那么危险,因为合并只能产生一次冲突,而重新设置可以使您的旧提交与新提交之间的每次提交都产生冲突。
合并的方式是:
git checkout developementV2
git pull
git checkout rahulV2
git merge developementV2
在两种情况下,您都可能会遇到冲突。这意味着您必须进入代码并确定要采用的版本。
答案 1 :(得分:0)
这是非常典型的工作流程。
git checkout developementV2
git pull
git checkout rahulV2
git merge developementV2
但是,如果万一这是一个经常性的任务,也许考虑一个别名?
git config --global alias.upd '!f() { git fetch && git checkout developementV2 && git merge --ff-only origin/developementV2 && git checkout -; }; f'
然后每次您需要更新rahulV2
状态的developementV2
分支时,执行
# update your developementV2 branch from remote
git upd
# merge changes in
git merge developementV2
答案 2 :(得分:0)
origin/rahulV2
是一个远程跟踪分支,每次执行git fetch时都会通过远程存储库中的更改进行更新。另一方面,rahulV2
是此分支的本地版本。 rahulV2
可能与origin/rahulV2
不同步,而rahulV2
可能与远程存储库中的实际内容不同步。
因此,合并中的差异将取决于rahulV2
的不同化身中的差异。如果要将最新的developmentV2
合并到git checkout rahulV2 # update remote tracking rahulV2
# git pull origin rahulV2
git checkout developmentV2 # switch to developmentV2
git merge rahulV2 # merge
中,则应执行以下操作:
char *str1 = "Hello ";
char *str2 = "World";
strcat(str1,str2);
printf("%s\n",str1);
答案 3 :(得分:0)
我尝试了
git checkout developmentV2
git pull
这里有15个新的提交已被撤消。
然后我尝试了
git checkout rahulV2
此处显示您的分支比“ origin / rahulV2”领先15次提交。
答案 4 :(得分:0)
我认为分支是由另一个创建的事实不会影响拉动效果。您所需要的只是拉动它并获得所需的更改,无论如何,到您获得更改的时间,它们是否来自另一个分支都无关紧要。
希望这很有帮助