git pull --rebase origin configUpdate
但它还没有获取到最新的更改-我该如何合并这两个版本?(同时额外加分,我使用pull --rebase
命令做了什么?)
但是它还没有抓取最新的更改-我该如何合并两个版本?(如果能说出我使用pull --rebase
命令的作用会有额外的奖励分数。)
git pull --rebase origin configUpdate
但它还没有获取到最新的更改-我该如何合并这两个版本?(同时额外加分,我使用pull --rebase
命令做了什么?)
但是它还没有抓取最新的更改-我该如何合并两个版本?(如果能说出我使用pull --rebase
命令的作用会有额外的奖励分数。)
从你的特性分支(例如configUpdate
)运行:
git fetch
git rebase origin/master
或者更短的形式:git pull --rebase
为什么这样做是有效的:
git merge 分支名
会取新提交的内容从分支分支名
中, 然后将它们添加到当前分支。如果需要,它会自动在顶部添加一个"Merge"提交。
git rebase 分支名
会取新提交的内容从分支分支名
中,然后将它们插入到您的更改下面。更精确地说,它修改了当前分支的历史记录,使其基于分支名
的顶部,并包括您在其上所做的任何更改。
git pull
基本上与git fetch; git merge origin/master
相同。
git pull --rebase
基本上与git fetch; git rebase origin/master
相同。
那么为什么你要使用git pull --rebase
而不是git pull
呢?以下是一个简单的例子:
您开始开发新功能。
当您准备推送更改时,其他开发人员已经推送了几个提交。
如果您使用git pull
(使用合并), 您的更改将被新提交覆盖,并且自动创建一个合并提交。
相反,如果您使用git pull --rebase
,则Git将快进您的主分支到上游的主分支,然后在其上应用您的更改。
我发现这是:
$ git fetch upstream
$ git merge upstream/master
pull --rebase
没有起作用是因为origin
指向了你的分支。如果你使用git pull --rebase upstream/master
,它将会起作用。请注意不要改变原意。 - Karl Bielefeldt切换到本地分支
> git checkout configUpdate
合并远程主分支到你的分支
> git rebase master configUpdate
如果出现冲突,请解决它们,并对每个有冲突的文件执行以下命令
> git add [path_to_file/conflicted_file] (例如git add app/assets/javascripts/test.js)
继续 rebase 操作
> git rebase --continue
我尝试使用git rebase,但好像不起作用。在执行git rebase后,当我试图将更改推送到本地分支时,我一直收到一个错误提示 ("hint: Updates were rejected because the tip of your current branch is behind its remote counterpart. Integrate the remote changes (e.g. 'git pull ...') before pushing again."),即使我已经执行了git pull也是如此。最终对我有效的方法是使用git merge。
git checkout <local_branch>
git merge <master>
如果您像我一样是个初学者,这篇关于git合并与git变基的好文章可能会对您有所帮助。 https://www.atlassian.com/git/tutorials/merging-vs-rebasing