# 發布一個本地分支
在你明確地決定將一個本地分支發布到遠程倉庫之前,這些在你本地計算機上創建的分支是不能被其他的團隊成員看到的,它只是你的私有分支。這就意味著,你可以保留某些改動僅僅在你私有的本地分支上,而與其他團隊成員分享一些其它分支上的改動。
現在讓我們來分享 “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” 上了。
- Learn Version Control with Git 中文版
- 前言
- Part 1 - 基礎知識
- 什么是版本控制?
- 為什么要使用版本控制系統?
- 準備工作
- 版本控制的基本工作流程
- 從一個未被納入版本控制的項目開始
- 從一個已被納入版本控制的項目開始
- 工作在你的項目上
- Part 2 - 分支與合并
- 分支可以改變你的生命
- 在分支上工作
- 暫時保存更改
- 切換一個本地分支
- 合并改動
- 分支的工作流程
- Part 3 - 遠程倉庫
- 關于遠程倉庫
- 連接一個遠程倉庫
- 查看遠程數據
- 整合遠程的改動
- 發布一個本地分支
- 刪除分支
- Part 4 - 高級應用
- 撤銷操作
- 用 diff 來檢查改動
- 處理合并沖突
- Rebase 代替合并
- 子模塊
- git-flow 的工作流程
- 使用 SSH 公鑰驗證
- Part 5 - 工具與服務
- 桌面應用程序
- 比較和整合工具
- 代碼托管服務
- 更多學習資源
- 附錄
- 版本控制的最佳實踐
- 命令 101
- 從 Subversion 過渡到 Git
- 為什么選擇 Git