本地仓库如何与远程仓库交互

远程分支与本地分支的交互

1:当执行完git clone克隆完某个远程仓库后,本地的仓库状态如下图:
在这里插入图片描述
origin/master: 你克隆的时间点远程仓库master分支的指向。
master:git自动为你创建master分支,并确定初始指向与远程仓库master分支是一样的。

2:接着其他人向该远程仓库master分支推送了信息,于是远程仓库的指向变为了这样。
在这里插入图片描述
3:你自己也对本地的master分支进行了开发,于是本地仓库状态变为了这样:
在这里插入图片描述
需要注意的是,一旦克隆之后,如果本地仓库不与远程仓库通讯,origin/master的指向是不会变的。

4:此时,远程仓库的状态与你之前克隆时已经不一样了,那么该如何将你的内容推送到远程仓库呢?答案:首先执行 git fetch origin (origin是远程仓库名),执行后本地仓库状态变为这样。
可知 git fetch origin 的作用:将本地分支分叉,拉取远程新状态,改变origin/master的指向。
在这里插入图片描述
5:接着你要做的就是本地分支合并
! git checkout master //切换分支到master
!! git merge origin/master //将origin/master分支合并到master分支上

6:将本地master分支推送到远程仓库master分支上。
执行 git push origin master

小结:
1:这里说下 跟踪分支
git push 的完整命令格式是这样的:

git push [remote-name] [branch-name] //推送分支到远程 remote-name: 远程仓库名称, branch-name: 本地要推送的分支名称

该命令并没有指定远程分支名称,也许你会有疑问 git push origin master 之后,是怎么确定内容推送到远程哪个分支?这就和跟踪分支有关了。

当执行完git clone之后,本地的master就默认是远程master分支的跟踪分支,推送本地master分支之后,会自动推送到远程master分支上。

如何设置其他分支的跟踪分支呢?

下面三个方法是设置跟踪分支

git checkout -b [branch][remotename]/[branch]

git checkout --track origin/serverfix //这种方式是第一种的快捷写法

git checkout -b sf origin/serverfix //这种方式是为本地分支设置别名的创建跟踪分支的方式。

git branch -vv // 本地仓库分支与远程仓库分支进行对比信息

git fetch --all //拉取全部的分支

git push origin --delete serverfix //推送后删除远程分支

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值