【问题标题】:Running `git pull --rebase`, what does it rebase against?运行 `git pull --rebase`,它的基准是什么?
【发布时间】:2019-02-15 11:54:27
【问题描述】:

我看到很多例子:

git pull --rebase

但我想知道哪个分支合并到当前分支中。不应该是git pull --rebase <master>还是git pull --rebase <dev>

【问题讨论】:

  • 我建议将git pull 运行的两个命令分开一段时间,直到您将它们全部放在脑海中。具体来说,git pull 首先运行 git fetch,然后运行第二个 Git 命令。第二个命令可以是rebase,如果您自己运行git rebase,您会看到它根据当前分支的上游设置 重新设置当前分支。当您自己运行 git merge 时,相同的默认值适用。当您让git pull 运行第二个命令时,事情会变得更加复杂。
  • 我推荐stackoverflow.com/a/30209750/6309:这样,一个简单的git pull 将自动执行rebase(在隐藏正在进行的工作之后)

标签: git git-merge git-rebase git-pull


【解决方案1】:

它首先获取origin/theBranch,然后在origin/theBranch 之上重新调整您的更改。


用草图:

  • git pull --rebase 之前:

    *--*--*--*--A <- origin/theBranch
                 \
                  M--Y <- theBranch   # your local branch
    
  • git pull --rebase 第一步:git fetch

    *--*--*--*--A--B--C--D <- origin/theBranch
                 \
                  M--Y <- theBranch
    
  • git pull --rebase 第 2 步:git rebase origin/theBranch

    *--*--*--*--A--B--C--D <- origin/theBranch
                          \
                           M'--Y' <- theBranch
    

【讨论】:

  • 啊是的,所以它针对远程跟踪分支进行变基
  • @LeGEC 在第 2 步图中使用 M*、Y*。
【解决方案2】:

在使用其他人的存储库时,需要记住一些基本的 Git 命令:

git clone
git fetch
git merge
git pull

这些命令在与远程存储库交互时非常有用。 clonefetch 将远程代码从存储库的远程 URL 下载到本地计算机。 merge 用于将不同人的工作与您的工作合并在一起,pull 是 fetch 和 merge 的组合。

我们将在下面深入了解这些命令。

克隆

要获取另一个用户存储库的完整副本,请像这样使用 git clone:

git clone https://github.com/USERNAME/REPOSITORY.git

将存储库克隆到您的计算机

克隆存储库时,您可以从多个不同的 URL 中进行选择。登录到 GitHub 后,可以在存储库详细信息下方找到这些 URL: Running `git pull --rebase`, what does it rebase against?

【讨论】:

    【解决方案3】:

    它将从远程拉出您正在工作的当前分支,并将其重新定位到您的本地分支。

    git-pull - 从另一个存储库或本地获取并集成 分支

    git-rebase - 转发端口本地提交到更新的上游头部

    现在,

    git pull --rebase = git fetch + git rebase 反对跟踪上游 分支

    用例:假设您和您的团队成员正在同一个分支上开发一项新功能。他进行了一些更改并将它们推送到远程。现在您需要获取并重新设置您的分支以合并他的更改。

    您也可以使用git pull --rebase &lt;currentBranch&gt; 代替git pull --rebase

    如果您明确想要将另一个分支更改合并到本地分支,则可以使用git pull --rebase &lt;otherBranch&gt;

    【讨论】:

      猜你喜欢
      • 2016-10-27
      • 2015-03-21
      • 2011-09-11
      • 2022-07-11
      • 2011-03-22
      • 2021-11-17
      • 2017-12-07
      • 1970-01-01
      相关资源
      最近更新 更多