在Git中重命名远程分支后,如何更新本地引用?

在Git中重命名远程分支后,如何更新本地引用?,git,Git,如果团队中的一个开发人员与另一个开发人员签出,那么第二个开发人员更新其本地回购协议的最佳方式是什么,这样他们就不会意外地推到旧的分支名称?正如您的链接所述,没有“重命名分支”;因此,第一个开发人员所做的是创建一个新分支,然后从使用它的其他人的下面删除旧分支[1] 可以独立地更新每个本地回购协议,方法是手动修改分支相关的配置设置等,或者更危险的是,直接修改元数据。。。但我更喜欢这样的解决方案: 鉴于删除了旧分支机构名称,并创建了新分支机构名称,以替换它: 1) 在本地获取并创建新分支 git fe

如果团队中的一个开发人员与另一个开发人员签出,那么第二个开发人员更新其本地回购协议的最佳方式是什么,这样他们就不会意外地推到旧的分支名称?

正如您的链接所述,没有“重命名分支”;因此,第一个开发人员所做的是创建一个新分支,然后从使用它的其他人的下面删除旧分支[1]

可以独立地更新每个本地回购协议,方法是手动修改分支相关的配置设置等,或者更危险的是,直接修改元数据。。。但我更喜欢这样的解决方案:

鉴于删除了
旧分支机构名称
,并创建了
新分支机构名称
,以替换它:

1) 在本地获取并创建新分支

git fetch -p
git checkout new-branch-name
注意
-p
参数到
获取
,这将导致
旧分支名称
的远程跟踪参考消失(因为
旧分支名称
不再在远程上)

假设
new branch name
尚未使用(在本地回购中,或在其另一个配置的远程中),这将创建具有适当跟踪的新分支,并将其签出。然后

git reset --hard old-branch-name
git branch -D old-branch-name
现在,有很多不同的场景会导致这一点,我们可以浏览其中任何一个或所有看起来可能有关的场景,但底线是,这使它看起来就像分支始终是新分支名称一样

例如,如果您以前有

x -- A <--(origin/old-branch-name)
      \
       B <--(old-branch-name)
签出
重置
分支-D
之后

x -- A <--(origin/new-branch-name)
      \
       B <--(new-branch-name)
最后你会

x -- A -- C <--(origin/new-branch-name)
      \
       B <--(new-branch-name)

x--A--C正如您的链接所指出的,没有“重命名分支”;因此,第一个开发人员所做的是创建一个新分支,然后从使用它的其他人的下面删除旧分支[1]

可以独立地更新每个本地回购协议,方法是手动修改分支相关的配置设置等,或者更危险的是,直接修改元数据。。。但我更喜欢这样的解决方案:

鉴于删除了
旧分支机构名称
,并创建了
新分支机构名称
,以替换它:

1) 在本地获取并创建新分支

git fetch -p
git checkout new-branch-name
注意
-p
参数到
获取
,这将导致
旧分支名称
的远程跟踪参考消失(因为
旧分支名称
不再在远程上)

假设
new branch name
尚未使用(在本地回购中,或在其另一个配置的远程中),这将创建具有适当跟踪的新分支,并将其签出。然后

git reset --hard old-branch-name
git branch -D old-branch-name
现在,有很多不同的场景会导致这一点,我们可以浏览其中任何一个或所有看起来可能有关的场景,但底线是,这使它看起来就像分支始终是新分支名称一样

例如,如果您以前有

x -- A <--(origin/old-branch-name)
      \
       B <--(old-branch-name)
签出
重置
分支-D
之后

x -- A <--(origin/new-branch-name)
      \
       B <--(new-branch-name)
最后你会

x -- A -- C <--(origin/new-branch-name)
      \
       B <--(new-branch-name)

x--A--C如果您在分支上没有任何正在进行的工作,或者没有其他原因来保存名称,那么删除旧名称通常是一种方法

如果您确实有理由对其进行重命名,可以使用两个命令:

  • 重命名分支:
    git分支-m旧名称新名称
  • 将上游更改为新名称:
    git branch——将上游设置为=origin/new name new name

您可以按其他顺序执行这些操作,您只需在此时使用正确的名称。

如果您没有任何关于分支的工作正在进行,或者没有其他原因来保存名称,通常可以删除旧名称

如果您确实有理由对其进行重命名,可以使用两个命令:

  • 重命名分支:
    git分支-m旧名称新名称
  • 将上游更改为新名称:
    git branch——将上游设置为=origin/new name new name

您可以按其他顺序执行这些操作,只需使用正确的名称即可。

可能在拉取/获取任何新更改之前手动编辑本地git配置文件。可能在拉取/获取任何新更改之前手动编辑本地git配置文件。