>[success] # 分支push 遠程
1. `push`把當前`branch`的位置(即它指向哪個`commit`)上傳到遠端倉庫,如下圖此時`HEAD `指向了 `master `指向了 `6 `這個`commit`,當執行 git push 時候實際是之將當前master 分支提交

* 提交后

如果想提交對應分支需要切換對應分支在進行push
~~~
git checkout xxx
git push xxx
~~~
這樣以后可以直接 在對應分支 進行 `git push` 就會提交到對應的遠程分支
2. 如果不切換手動切換分支想提交指定分支到遠程可以`git push 遠程倉庫名 xxx`,例如`git push origin testing`
3. 即使將其他分支 `push` 到遠程,遠程分支`HEAD `指向也不會改變,因為遠程倉庫的`HEAD`是永遠指向它的默認分支(即 master,如果不修改它的名稱的話),并會隨著默認分支的移動而移動的

>[danger] ##### 其他操作
在 Git 中(2.0 及它之后的版本),默認情況下,你用不加參數的`git push`只能上傳那些之前從遠端`clone`下來或者`pull`下來的分支,而如果需要`push`你本地的自己創建的分支,則需要手動指定目標倉庫和目標分支(并且目標分支的名稱必須和本地分支完全相同),就像上面這樣。
你可以通過`git config`指令來設置`push.default`的值來改變`push`的行為邏輯,例如可以設置為「所有分支都可以用`git push`來直接 push,目標自動指向`origin`倉庫的同名分支」(對應的`push.default`值:`current`),或者別的什么行為邏輯,你甚至可以設置為每次執行`git push`時就自動把所有本地分支全部同步到遠程倉庫(雖然這可能有點耗時和危險)。如果希望詳細了解,你可以到[這里](https://link.juejin.cn/?target=https%3A%2F%2Fgit-scm.com%2Fdocs%2Fgit-config%23git-config-pushdefault "https://git-scm.com/docs/git-config#git-config-pushdefault")看看。
>[info] ## 文章參考
[Git 原理詳解及實用指南](https://juejin.cn/book/6844733697996881928)