【发布时间】:2019-11-07 08:49:51
【问题描述】:
假设我在分支'abc-test'
git pull origin master
这会将主分支与我当前的分支('abc-test')合并还是我需要运行更多命令?
【问题讨论】:
-
Pull 进行 fetch 然后合并(进入 current 分支)。我建议研究这个主题。
假设我在分支'abc-test'
git pull origin master
这会将主分支与我当前的分支('abc-test')合并还是我需要运行更多命令?
【问题讨论】:
运行 git fetch 获取最新更改,然后运行 git rebase master 将您的分支更新为 master 中的最新更改。
现在,回答您的问题:是的,git pull origin master 确实合并了它们。
但是,您可能想要的是将 master 的提交应用到您的分支,然后在它们之上重新应用您的提交。
这被称为变基。 git-rebase 手册(您可以通过git rebase --help 直接从终端访问它,其中充满了有用的图表,可帮助您了解提交图的样子。
这是其中之一:
Assume the following history exists and the current branch is "topic":
A---B---C topic
/
D---E---F---G master
From this point, the result of the following command:
git rebase master
would be:
A'--B'--C' topic
/
D---E---F---G master
如果您使用git pull,您的图表很快就会变得非常混乱。特别是如果您开始使用它来使用来自远程 repo 的新提交来更新本地分支,因为那样您将创建从分支到自身的合并提交,这是不必要的,而且经常会产生误导。
大多数情况可以通过运行 git pull --rebase 或简单地 git pull -r 而不是 git pull 来避免。
提示:尽可能频繁地使用git log --oneline --graph,这样您就可以习惯您的存储库的图表以及每个 git 命令对其的影响。
注意:当变基太深时要小心。阅读 git-rebase 手册。
【讨论】:
git pull origin master 将从原始远程 master 分支中提取更改并将它们合并到本地签出的 abc-test 分支git commit -m"Your commit Message"
git push
【讨论】: