【发布时间】:2009-11-27 19:02:26
【问题描述】:
所以我有 3 个 git 分支:
- 主人
- 刷新
- auth_upgrade
我真的没有像我应该的那样使用分支...所以master 已经过时了,refresh 有点过时了,auth_upgrade 实际上是分支这是完全最新的。
所以...我最终希望将 auth_upgrade 设为 master 分支,然后将 git push 设为我的 github 存储库。
这样做的最佳过程是什么?
【问题讨论】:
所以我有 3 个 git 分支:
我真的没有像我应该的那样使用分支...所以master 已经过时了,refresh 有点过时了,auth_upgrade 实际上是分支这是完全最新的。
所以...我最终希望将 auth_upgrade 设为 master 分支,然后将 git push 设为我的 github 存储库。
这样做的最佳过程是什么?
【问题讨论】:
您可以将auth_upgrade 拉入master。
$ git co master
$ git pull . auth_upgrade
master 上进行主线工作并使用此分支与您的远程同步..refresh 应用相同的过程,如果您想要包含一些独特的更改..见:
$ man git-pull
git-pull - Fetch from and merge with another repository or a local branch
【讨论】:
您可以使用git branch -m 选项重命名分支:
git branch -m master old_master
git branch -m auth_upgrade master
【讨论】:
auth_upgrade 重命名为 master 然后尝试推送到 github,我会收到 non-fast-forward 错误。另外,master 和 auth_ugrade 之间的所有新文件和更改都不会被推送,所以当我从分支部署时,这些文件完全不正常。
master 不是auth_upgrade 的祖先。这确实有所作为。我会留下我的答案,以防它对有类似情况的其他人有用,可以通过重命名来解决。
如果当您说“过时”时,旧分支是严格的祖先,那么您实际上并没有任何合并问题。
如果您只想将当前分支变为远程存储库的主分支,您可以这样做:
git push origin HEAD:master
编辑: 从你的一个 cmets 听起来你在当前分支中没有来自远程 master 的所有更改,所以你可能需要在成功推送之前合并它们:
git fetch
git merge origin/master
然后您可以删除本地分支。使用小 -d 删除是安全的,因为它只删除当前分支的祖先分支。
git branch -d master
git branch -d refresh.
如果您的本地分支不称为 master 让您感到困扰,您现在可以这样做:
git checkout -b master
git branch -d auth_upgrade
【讨论】: