Git branch -m和远程跟踪分支

时间:2011-12-01 01:49:10

标签: git

我有一个分支我已经使用--set-upstream推送到github了。我想现在重命名它,并将更改反映在github上。这就是我想要做的事情

git branch -m oldbranch newbranch
git push origin :oldbranch
git push --set-upstream newbranch

运行'branch -m'除了将分支更改为'newbranch'之外,不会更新我的.git / config。 branch.newbranch.merge仍然是'refs / heads / oldbranch'。当我按下时,如果我发出命令

git push --set-upstream origin newbranch 

是要正确更新我的.git / config吗?对其他用户有任何潜在影响吗?目前没有其他人承诺分支机构,我认为任何人都不会检查它。

2 个答案:

答案 0 :(得分:0)

是的,应将newbranch推送到origin并更新上游信息。如果您想要非常明确,可以使用git push --set-upstream origin newbranch:newbranch

至于影响其他用户,您建议删除原始分支(oldbranch)并创建新分支(newbranch)。他们碰巧有相同的名字。但是,其他用户不会“神奇地”获得分支名称更改。任何关注oldbranch的人都会看到该分支被删除,任何盲目推送oldbranch副本的人都可能无意中在服务器上重新创建分支。

答案 1 :(得分:0)

虽然可能有git plumbing命令重命名上游和本地分支,但我真的不太关心它。

一个简单的工作流程是从你希望用你想要的新名称重命名的分支创建一个新分支,然后继续删除旧分支然后你推动分支,它去用你的新名字

git checkout oldname
git branch newbranch
git branch -d oldname
git push newbranch

由于分支是由其名称标识的,因此可能正在跟踪此早期分支的旧用户将受到影响,如果他们具有相应的权限,则有些人可能最终创建具有该名称的分支。