我正在尝试重制git分支。我想基于当前的主分支从头开始重新创建分支。我做了以下事情:
$ git status
# On branch foo
nothing to commit (working directory clean)
$ git checkout master
$ git branch -D foo
Deleted branch foo (was *******).
$ git push origin :foo
To git@***:***
- [deleted] foo
$ git checkout -b foo master
Switched to a new branch 'foo'
$ git push origin foo
To git@***:***
* [new branch] foo -> foo
现在,至少对我来说,一切都很完美。问题是,与“旧”foo分支合作的其他人仍然拥有该副本。我已经要求其他人执行以下命令:
git checkout master
git branch -D foo
git checkout foo
不幸的是,每当他们再次检查foo时,它仍然会跟踪旧的foo分支。我通常做的只是告诉他们在中间的某个地方扔一个git pull
(不指定分支),它最终会神奇地起作用。告诉git跟踪“新”foo分支的最佳方法是什么?
git version 1.7.4.1
答案 0 :(得分:1)
你必须至少运行一次git fetch
,否则其他git存储库不知道“new”foo分支。
实际上这很简单:
# on branch foo
git fetch
git reset --keep origin/foo