Git远程分支
Git的分支分为:本地分支,本地远程分支和远程分支。
对分支的操作基本包括:创建、关联和删除。
Git分支的创建
本地分支的创建
本地分支的创建:git branch 分支名
本地分支的切换:git checkout 分支名
本地分支的创建和切换:git chekout -b 分支名
查看目前的分支情况 git branch -a
$ git branch -a
* master //本地分支 *表示目前所在的分支
remotes/origin/master //本地映射的远程分支
创建develop分支并切换 git checkout -b develop
$ git checkout -b develop
Switched to a new branch 'develop' //切换到了新创建的develop分支上
查看目前的分支状况 git branch -a
* develop //成功创建并切换
master
remotes/origin/master
远程分支的创建
本地分支需要和远程分支保持着联系,才可以进行push操作,否则会异常。
远程和本地联系通过:
git push --set-upstream origin 远程分支名
git push -u origin 远程分支名
此时执行git push
$ git push
fatal: The current branch develop has no upstream branch. //当前的develop分支没有上游分支(上游分支就是和本地联系的远程分支)
To push the current branch and set the remote as upstream, use //如果要是想推送当前的分支,并且和远程分支建立联系 就使用下面的命令
git push --set-upstream origin develop
核心就是:在远程建立一个 与 本地建立起联系的分支, 以后的本地当前分支的推送 都是 推送至远程的联系分支
git push --set-upstream origin develop
Total 0 (delta 0), reused 0 (delta 0)
...
* [new branch] develop -> develop //新建立了分支 本地develop -> 远程的develop
Branch develop set up to track remote branch develop from origin. //本地的分支 develop,建立了 追踪 和远端的develop
这是git push就可以成功
$ git push
Everything up-to-date
这时 本地和远程的分支是同名,都是develop。
假如 将本地分支develop 想要和远程的 develop1 建立联系 需要如下操作。
就需要 使用 git push的全命令了
push的全命令:git push origin src:dest //src是本地 dest是远程
首先删除已经建立的远程 develop分支
git push origin :develop
此时git push 会出现上述的错误,因为 已经将远程的develop删除,也就不存在 了 有联系的远程分支
git push origin develop:develop1
Total 0 (delta 0), reused 0 (delta 0)
...
* [new branch] develop -> develop1 //本地develop --> develop1
此时git push 仍会报错
fatal: The upstream branch of your current branch does not match
the name of your current branch. To push to the upstream branch
on the remote, use //与本地当前分支 相联系的 上游分支的 名字是不同的。需要使用下面的命令去推送
git push origin HEAD:develop1
To push to the branch of the same name on the remote, use //如果 想要用 同名的远程分支,就使用下面的命令
git push origin develop
综上:
远程分支的创建分为两种情况:
①:本地和远程名字相同的情况
使用git push --set-upstream 分支名
使用git push -u origin 分支名
以后的每次推送 使用 git push即可
②:本地和远程名字不同的情况
使用git push origin src:dest, 以后的每次推送 都需要使用 git push origin HEAD:dest 命令
远程分支追踪
如果只是单纯的追踪远程分支,需要使用--track和--set-upstream命令。
比如 远程已经存在了develop分支,本地只有一个master分支。此时就需要,先创建develop分支,然后追踪远程的develop分支。
本地分支的删除
git branch -d 分支名
先删除本地分支 develop
git branch -d develop
查看分支情况 git branch -a
$ git branch -a
* master
remotes/origin/develop
remotes/origin/master
本地没有develop 但是远程却存在 此时需要 创建和追踪
方法一:
git checkout -b develop 创建并切换
git push --set-upstream origin develop
Branch develop set up to track remote branch develop from origin. //分支已经追踪
Everything up-to-date
方法二:
git checkout --track origin/develop //创建本地develop分支,并且追踪
Branch develop set up to track remote branch develop from origin. //分支已经追踪
Switched to a new branch 'develop' //切换至develop分支
分支的删除
本地分支删除
git branch -d分支名
需注意的是 删除的分支 不能是 正在操作的分支
远程分支删除
git push origin :分支名