【问题标题】:How to pull the latest changes to my current working branch in GitHub?如何在 GitHub 中将最新更改拉到我当前的工作分支?
【发布时间】:2019-11-07 08:49:51
【问题描述】:

假设我在分支'abc-test'

git pull origin master

这会将主分支与我当前的分支('abc-test')合并还是我需要运行更多命令?

【问题讨论】:

  • Pull 进行 fetch 然后合并(进入 current 分支)。我建议研究这个主题。

标签: git github git-pull


【解决方案1】:

tl;博士:

运行 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 手册。

【讨论】:

    【解决方案2】:
    1. git pull origin master 将从原始远程 master 分支中提取更改并将它们合并到本地签出的 abc-test 分支
    2. 可能你会遇到冲突,然后你必须解决冲突并提交更改git commit -m"Your commit Message"
    3. 如果没有冲突,则跳过第 2 步转到第 4 步
    4. 那么你必须推动更改git push

    【讨论】:

    • 假设我在文件 acb.php 中有冲突,解决冲突的最佳方法是什么。是否有任何工具...或者是否有任何关于发生冲突的信息...?
    • 我正在使用p4merge
    猜你喜欢
    • 2021-12-11
    • 2015-01-21
    • 1970-01-01
    • 2017-09-10
    • 2011-11-03
    • 2011-11-01
    • 1970-01-01
    • 2020-01-09
    相关资源
    最近更新 更多