ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
>[success] # 分支push 远程 1. `push`把当前`branch`的位置(即它指向哪个`commit`)上传到远端仓库,如下图此时`HEAD `指向了 `master `指向了 `6 `这个`commit`,当执行 git push 时候实际是之将当前master 分支提交 ![](https://img.kancloud.cn/0c/d6/0cd6e1cc32b995c0f38b1bf84b290057_567x825.png) * 提交后 ![](https://img.kancloud.cn/6a/6d/6a6dc8f68d14e90c9d5b27d754fcab7c_629x280.png) 如果想提交对应分支需要切换对应分支在进行push ~~~ git checkout xxx git push xxx ~~~ 这样以后可以直接 在对应分支 进行 `git push` 就会提交到对应的远程分支 2. 如果不切换手动切换分支想提交指定分支到远程可以`git push 远程仓库名 xxx`,例如`git push origin testing` 3. 即使将其他分支 `push` 到远程,远程分支`HEAD `指向也不会改变,因为远程仓库的`HEAD`是永远指向它的默认分支(即 master,如果不修改它的名称的话),并会随着默认分支的移动而移动的 ![](https://img.kancloud.cn/0a/09/0a0911a22001f4edef21416dc64daca2_588x912.gif) >[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)