远程引用是对远程仓库的引用(指针),包括分支、标签等等。 你可以通过 git ls-remote (remote)
来显式地获得远程引用的完整列表,或者通过 git remote show (remote)
获得远程分支的更多信息。 然而,一个更常见的做法是利用远程跟踪分支。
1 查看远程分支 git branch -r 或 git ls-remote
2 拉取合并远程分支
2.1 拉取 git fetch origin
当 git fetch
命令从服务器上抓取本地没有的数据时,它并不会修改工作目录中的内容。 它只会获取数据然后让你自己合并。
2.2 拉取并合并远程分支 git pull [origin] [branch]
大多数情况下它的含义是一个 git fetch
紧接着一个 git merge
命令。
3 推送到远程分支
3.1 git push remote branch
$ git push origin serverfix
Counting objects: 24, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (15/15), done.
Writing objects: 100% (24/24), 1.91 KiB | 0 bytes/s, done.
Total 24 (delta 2), reused 0 (delta 0)
To https://github.com/schacon/simplegit
* [new branch] serverfix -> serverfix
“推送本地的 serverfix 分支来更新远程仓库上的 serverfix 分支。
3.2git push origin serverfix:serverfix
,
它会做同样的事,推送本地的 serverfix 分支,将其作为远程仓库的 serverfix 分支
可以通过这种格式来推送本地分支到一个命名不相同的远程分支git push origin serverfix:awesomebranch
来将本地的 serverfix
分支推送到远程仓库上的 awesomebranch
分支。
4 合并远程分支 git merge origin/serverfix
5 创建基于远程分支的本地分支(跟踪分支)
git checkout -b serverfix origin/serverfix
这种创建分支,会自动建立本地分支自动跟踪远程分支,,比如当clone一个项目时,它通常会自动地创建一个跟踪 origin/master
的 master
分支,如果在一个跟踪分支上输入 git pull
,Git 能自动地识别去哪个服务器上抓取、合并到哪个分支。
5.1 快捷创建跟踪分支 —track
$ git checkout --track origin/serverfix
Branch serverfix set up to track remote branch serverfix from origin.
Switched to a new branch 'serverfix'
5.2可以创建不同于远程分支的分支名,如:
git checkout -b sf origin/serverfix
5.3 设置或更改跟踪的远程分支
—set-upstream-to 或 -u
$ git branch -u origin/serverfix
Branch serverfix set up to track remote branch serverfix from origin.
** 我们也可以在push的时候,关联远程分支,以后就可以直接git push ,自动会推到关联的远程分支
git push -u origin branch
5.4 查看所有的跟踪分支
git branch -vv
$ git branch -vv
iss53 7e424c3 [origin/iss53: ahead 2] forgot the brackets
master 1ae2a45 [origin/master] deploying index fix
* serverfix f8674d9 [teamone/server-fix-good: ahead 3, behind 1] this should do it
testing 5ea463a trying something new
5.5 创建分支但不切换
使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checkout。
git fetch origin 远程分支名x:本地分支名x
6 删除远程分支
$ git push origin --delete serverfix
To https://github.com/schacon/simplegit
- [deleted] serverfix
7 撤销本地分支与远程分支的映射关系
git branch —unset-upstream