2012-08-27 81 views
0

我正在尝试重制一个git分支。我想根据当前主分支从头开始重新创建分支。我做了以下几件事:重组一个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 [email protected]***:*** 
- [deleted]   foo 
$ git checkout -b foo master 
Switched to a new branch 'foo' 
$ git push origin foo 
To [email protected]***:*** 
* [new branch]  foo -> foo 

现在,一切工作都完美无缺,至少对我来说。问题是与“旧”foo分支合作的其他人仍然拥有该副本。我已要求别人做以下命令:

git checkout master 
git branch -D foo 
git checkout foo 

不幸的是,每一次他们再次检出富的时候,它仍然是跟踪老FOO分支。我通常所做的只是告诉他们在中间的某个地方抛出一个git pull(没有指定分支),它最终会神奇地工作。告诉git跟踪“新”foo分支的最佳方式是什么?

Git版本1.7.4.1

回答

1

你必须运行git fetch至少一次,否则其他的Git仓库有没有“新”富分支的知识。

它实际上是一样简单:

# on branch foo 
git fetch 
git reset --keep origin/foo 
+0

我仍然要删除我的本地富的副本? – Phil

+0

@flep是的,这只是您需要在其他存储库上执行的命令列表。 –

+0

@flep:好吧,您可能还会在分支'foo'上键入'git reset --keep master'。无需删除+重新创建 – knittl