目前思路还很混乱,难以系统的整理。先求解决当下的问题,再去研究原理。
从我的需求入手:
1、我想从某个远程仓库克隆某个分支到本地仓库,该怎么做?
办法:git fetch wine test:new
这个命令的意思是说:
2、我想要把本地的new分支的更新内容推送到wine的test分支
办法:git push wine new:test
这个命令的格式是这样的:git push 远程仓库名 本地分支:远程分支。如果就是把当前所在分支的更新推送到wine的test,可以这样:git push wine test。
3、我想要删除远程仓库wine的test分支
办法:git push wine :test
对比2可以发现其实只是省略了本地分支名且保留了冒号。
4、我想抓取wine仓库master分支所有的更新并合并到本地的test分支
git pull wine master:test 其格式为 git pull 远程仓库 远程分支:本地分支
这个命令当本地分支不存在时跟1其实是一样的。
如果test分支 不存在则会自动创建一个;如果省略冒号和本地分支,则默认为当前分支;如果只是省略远程分支呢?对不起这是瞎扯淡;如果只写 git pull呢?不知道。。。
更新
2014-6-25
在git中重命名远程分支: 其实就是先删除远程分支,然后重命名本地分支,再重新提交一个远程分支。
重命名本地分支: git branch -m oldname newname
删除不存在对应远程分支的本地分支: git fetch -p 它在fetch之后删除掉没有与远程分支对应的本地分支。
删除远程分支的另一种方法: git push repositoryname --delete branchname