git checkout -b samename origin/samename
然後跟蹤似乎很好地工作。如果我做後續提交,然後我就可以做
git push
和git推我提交原產罰款。
但是,如果我這樣做
git checkout -b diffname origin/samename
然後跟蹤不起作用,儘管親混帳書的這一部分:
$ git checkout -b sf origin/serverfix
Branch sf set up to track remote branch refs/remotes/origin/serverfix.
Switched to a new branch "sf"
Now, your local branch sf will automatically push to and pull from origin/serverfix
推送操作只是給 「最新的一切」是什麼賦予了?
我在Mac OS上運行git 1.7.1 X
這裏是整個實驗爲那些想嘗試在家裏:
szbwood-mbp15:proj4_local bwood$ vi file1
szbwood-mbp15:proj4_local bwood$ git add file1
szbwood-mbp15:proj4_local bwood$ git commit -m"Created file 1"
[master (root-commit) 5d50289] Created file 1
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 file1
szbwood-mbp15:proj4_local bwood$ git push origin master:samename
Counting objects: 3, done.
Writing objects: 100% (3/3), 225 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
To /Users/bwood/work/gitplay/proj4_remote.git
* [new branch] master -> samename
szbwood-mbp15:proj4_local bwood$ git checkout -b samename origin/samename
Branch samename set up to track remote branch samename from origin.
Switched to a new branch 'samename'
szbwood-mbp15:proj4_local bwood$ vi file1
szbwood-mbp15:proj4_local bwood$ git commit -a
[samename a7af908] ..
1 files changed, 1 insertions(+), 0 deletions(-)
szbwood-mbp15:proj4_local bwood$ git push
Counting objects: 5, done.
Writing objects: 100% (3/3), 251 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
To /Users/bwood/work/gitplay/proj4_remote.git
5d50289..a7af908 samename -> samename
szbwood-mbp15:proj4_local bwood$ git checkout -b diffname origin/samename
Branch diffname set up to track remote branch samename from origin.
Switched to a new branch 'diffname'
szbwood-mbp15:proj4_local bwood$ vi file1
szbwood-mbp15:proj4_local bwood$ git commit -a
[diffname c5bbec1] ..
1 files changed, 1 insertions(+), 0 deletions(-)
szbwood-mbp15:proj4_local bwood$ git push
Everything up-to-date
奇怪的是,該配置文件看起來很好...
[branch "samename"]
remote = origin
merge = refs/heads/samename
[branch "diffname"]
remote = origin
merge = refs/heads/samename
奇怪的是,.git中的配置文件看起來很好: – bruce 2010-11-08 04:50:13
其實我認爲這本書是錯誤的,並閱讀手冊的推和這個SO帖子http://stackoverflow.com/questions/948354/git push-current-branch爲此增加了重量。看起來好像如果你不公開指定要推送的分支,git會推送所有與遠程名稱匹配的本地分支。如果你不指定遠程,那麼它假定當前分支的遠程。因此,人們經常覺得跟蹤分支意味着你可以用'git push'推動你的改變,但我認爲這是錯誤的。 Git推動推動所有與遠程名稱匹配的本地分支機構。 – bruce 2010-11-08 05:09:22