mirror of
https://github.com/ZJDoc/GitGuide.git
synced 2026-07-29 15:20:25 +08:00
docs(git): add advanced and error
This commit is contained in:
103
docs/git/advanced/远程分支操作.md
Normal file
103
docs/git/advanced/远程分支操作.md
Normal file
@@ -0,0 +1,103 @@
|
||||
|
||||
# 远程分支操作
|
||||
|
||||
学习本地分支与远程分支的交互
|
||||
|
||||
1. 分支显示
|
||||
2. 分支同步
|
||||
3. 分支推送
|
||||
4. 分支跟踪
|
||||
5. 分支删除
|
||||
|
||||
使用命令
|
||||
|
||||
1. [git branch](https://git-scm.com/docs/git-branch)
|
||||
2. [git fetch](https://git-scm.com/docs/git-fetch)
|
||||
3. [git push](https://git-scm.com/docs/git-push)
|
||||
4. [git checkout](https://git-scm.com/docs/git-checkout)
|
||||
5. [git merge](https://git-scm.com/docs/git-merge)
|
||||
|
||||
## 分支显示
|
||||
|
||||
显示本地分支和远程分支的关系
|
||||
|
||||
```
|
||||
# 使用参数-vv列出本地分支是否有跟踪远程分支,并且本地分支是否领先或者落后远程分支
|
||||
$ git branch -vv
|
||||
```
|
||||
|
||||
## 分支同步
|
||||
|
||||
获取远程分支数据
|
||||
|
||||
```
|
||||
$ git fetch 远程仓库 # origin是默认的远程仓库
|
||||
```
|
||||
|
||||
使用`git fetch`不会合并远程分支,需要再显式使用`git merge`命令
|
||||
|
||||
使用`git pull`可实现拉取远程分支数据并合并
|
||||
|
||||
```
|
||||
$ git pull 远程仓库 本地分支名
|
||||
```
|
||||
|
||||
## 分支推送
|
||||
|
||||
推送本地分支内容到远程分支
|
||||
|
||||
```
|
||||
$ git push 远程仓库 本地分支名/远程分支名
|
||||
```
|
||||
|
||||
如果需要本地分支和远程分支名一致,实现如下:
|
||||
|
||||
```
|
||||
$ git push 远程仓库 本地分支名
|
||||
```
|
||||
|
||||
使用参数`-u`设置要推送的远程分支为本地待跟踪,方便后续拉取代码操作
|
||||
|
||||
```
|
||||
$ git push -u 远程仓库 本地分支
|
||||
```
|
||||
|
||||
## 分支跟踪
|
||||
|
||||
设置本地分支想要跟踪的远程分支
|
||||
|
||||
```
|
||||
$ git checkout -b [branch] [remotename]/[branch]
|
||||
```
|
||||
|
||||
如果远程分支和本地分支一致,那么使用简易方式
|
||||
|
||||
```
|
||||
$ git checkout --track [remotename]/[branch]
|
||||
```
|
||||
|
||||
修改要跟踪的远程分支,使用参数`-u`或`--set-upstream-to`
|
||||
|
||||
```
|
||||
$ git branch -u [branch] [remotename]/[branch]
|
||||
# 同样的分支名
|
||||
$ git branch -u [remotename]/[branch]
|
||||
```
|
||||
|
||||
## 分支删除
|
||||
|
||||
删除远程分支
|
||||
|
||||
```
|
||||
$ git push 远程仓库 --delete 远程分支名
|
||||
```
|
||||
|
||||
如果远程分支已在本地分支之后,可以不删除远程分支而使用强制方式推送到远程分支,参考[[Git高级教程(二)] 远程仓库版本回退方法](https://blog.csdn.net/fuchaosz/article/details/52170105)
|
||||
|
||||
```
|
||||
$ git push -f
|
||||
```
|
||||
|
||||
## 相关阅读
|
||||
|
||||
* [3.5 Git 分支 - 远程分支](https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E8%BF%9C%E7%A8%8B%E5%88%86%E6%94%AF)
|
||||
Reference in New Issue
Block a user