发布一个本地分支
在你明确地决定将一个本地分支发布到远程仓库之前,这些在你本地计算机上创建的分支是不能被其他的团队成员看到的,它只是你的私有分支。这就意味着,你可以保留某些改动仅仅在你私有的本地分支上,而与其他团队成员分享一些其它分支上的改动。
现在让我们来分享 “contact-form” 分支(它直到现在还仅仅是个私有的本地分支)到 “origin” 远程上:
$ git checkout contact-form
Switched to branch 'contact-form'
$ git push -u origin contact-form
Counting objects: 36, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (31/31), done.
Writing objects: 100% (36/36), 90.67 KiB, done.
Total 36 (delta 12), reused 0 (delta 0)
Unpacking objects: 100% (36/36), done.
To file://Users/tobidobi/Desktop/GitCrashkurs/remote-test.git
* [new branch] contact-form -> contact-form
Branch contact-form set up to track remote branch contact-form from origin.
这个命令会告诉 Git 来发布你当前本地的 HEAD 分支到 “origin”上,并命名为 “contact-form”(保持相同的分支名在本地和其对应的远程分支是非常有必要的)。
这个 “-u” 参数会自动地在你本地的 “contact-form” 分支和新建的远程分支之间创建一个 “跟踪” 链接。执行 “git branch” 命令来显示分支信息,并且附带上一些特定的参数,在方括号中就会显示出这个建立的跟踪联系:
$ git branch -vva
* contact-form 56eddd1 [origin/contact-form] Add new contact..
faq-content 814927a [crash-course-remote/faq-content: ahead
1] Add new question
master 2dfe283 Implement the new login box
remotes/crash-course-remote/faq-content e29fb3f Add FAQ questions
remotes/crash-course-remote/master 2b504be Change headlines f...
remotes/origin/contact-form 56eddd1 Add new contact fo...
remotes/origin/master 56eddd1 Add new contact form page
当创建了这个新的远程分支后,发布新的本地提交将会非常简单,执行 “git push” 命令就完成这个操作。
如果某个开发人员拥有对这个远程仓库的操作权限,而且他想在这个你发布的 “contact-form” 上工作,他可以在自己的本地计算机上新建一个本地分支,并跟踪到这个远程分支上。这样他也就同样可以提交自己的改动到 “contact-form” 上了。