gpt4 book ai didi

git rebase origin/develop 与 git rebase develop

转载 作者:IT王子 更新时间:2023-10-29 00:36:04 32 4
gpt4 key购买 nike

假设当前分支是 MyFeatureX。并且本地 develop 分支是最新的。下面的两个陈述是等价的吗?推荐的语法是什么?

git rebase origin/develop 
git rebase develop

请注意:这不是git rebase origin vs.git rebase origin/master 相同的问题

最佳答案

你的本地分支 develop tracks origin/develop 并且它们可能并不总是有相同的提交。

$ cat ~/.git/config

[remote "origin"]
url = git@something.com/repo.git
fetch = +refs/heads/*:refs/remotes/origin/*

这意味着我们有一个任意命名为“origin”的“远程”(位于其他地方的存储库)。

您的本地 develop 分支正在跟踪来自该远程存储库的分支,并且有一个对该数据的本地引用,称为 origin/develop。在大多数情况下,我们认为这两件事总是包含相同的提交。但是,您需要显式更新本地 develop 分支以从源获取最新数据。这通常是通过 pull 完成的:

$ git status
on branch develop
$ git pull
...pulls latest changes from origin

但是,git pull 实际上执行两个步骤,fetchmerge。它在幕后所做的第一步是从源中获取所有最新的提交,您可以使用

git fetch origin

这将更新分支 origin/develop,但不会更新本地分支 develop

最新的提交 stash 在您本地 .git 目录的“幕后”,您可以从名为“origin/develop”的分支中引用它。

获取后,要真正使您的本地分支 origin,您必须执行 git merge origin/develop。这在技术上不是 merge ,它将是一个“快进”,这意味着 git 足够聪明,可以让你的本地 origin 分支匹配 origin/develop 而无需实际 merge 任何东西.出于这个原因和其他原因,在 git 中 merge 让我很吃惊。

因此,如果您从 develop rebase ,它有可能比 origin/develop 过时(旧)。

我个人在 rebase 之前执行此工作流:

git fetch --all
git rebase origin/branchname

这意味着我可以提取所有数据,而不必过多考虑我在哪个分支上,并从远程存储库中重新设置最新代码。稍后,在 develop 分支上,一个简单的 git pull 将确保您是最新的。

关于git rebase origin/develop 与 git rebase develop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42617683/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com