开发当中与远程分支有关的git操作

记录一下,工作中使用git的一些盲点,重新梳理出来,帮助准确操作远程的一些操作.....

附上学习链接[Git Book](Git - 远程分支 (git-scm.com))

远程分支在本地仓库是什么形式?

git在本地分支都是有指针引用进行标记分支最新的进展,而远程分支的进展就是通过远程引用,它是对远程仓库的引用(指针)。远程引用无法移动,但连网进行拉取之后,它们就会自动移动。

远程分支的形式:<remote>/<branch>

查看远程分支的两个命令: 1、git ls-remote <remote> 来显式地获得远程引用的完整列表 2、git remote show <remote> 获得远程分支的更多信息

产生链接远程分支的方式

产生的方式有两种:

1、克隆远程仓库 Git的clone命令会自动创建一个指向master分支的指针,并命名为origin/master,同时也会在本地指向与远程仓库同样位置。

由于普遍认识,因此分支通常为master,远程仓库名称为origin 可以通过git clone -o '远程仓库名',这个命令将会自定义远程仓库名称

2、添加远程仓库 通过git remote add添加远程仓库,它会添加一个新的远程仓库引用到当前的项目,也就是会产生origin/master这样类似的指针。

更新我们的远程引用

有时候需要同步团队进度,运行 git fetch <remote> 命令,更新本地数据库,移动 origin/master 指针这样的远程引用到更新之后的位置。

但是需要注意的是:抓取到新的远程跟踪分支时,本地不会自动生成一份可编辑的副本,只会在本地有一个不可以修改的origin/serverfix 指针。

这就意味着本地上是一个虚拟的,不能修改的标记,但是commit所有的内容都在里面。只能读到这块的修改。

因此当我们想从远程拉取下来一个本地上没有的分支需要新建一个分支,在这个新分支上进行git merge命令合并远程引用,然后将本地修改的这样就可以进行编辑,最后再通过git push命令提交到远程。

这里有一个快捷的命令,帮助我们快速的完成创建分支,并且合并到这个新分支上,建立在远程跟踪分支之上 git checkout -b '本地分支' '远程跟踪分支' = git checkout -b '本地分支' + git merge '远程跟踪分支'

此外,git push命令我们还可以指定哪个本地分支推送到远程分支当中,例如:行 git push origin serverfix:awesomebranch 来将本地的 serverfix 分支推送到远程仓库上的 awesomebranch 分支。

拉取分支

拉取命令:git pull <remote> <branch>

git pull = git fetch + git merge

有设置好的跟踪分支,不管它是显式地设置还是通过 clonecheckout 命令为你创建的,git pull 都会查找当前分支所跟踪的服务器与分支, 从服务器上抓取数据然后尝试合并入那个远程分支。

总结:所以当想从远程拉取下来一个本地上没有的分支的时候,不管是git pull还是git fetch,都需要新建一个分支,然后合并远程分支

跟踪分支

定义:从一个远程跟踪分支检出一个本地分支会自动创建所谓的"跟踪分支"(它跟踪的分支叫做"上游分支")。 跟踪分支是与远程分支有直接关系的本地分支。 如果在一个跟踪分支上输入 git pull,Git 能自动地识别去哪个服务器上抓取、合并到哪个分支。

产生跟踪分支的命令: 1、git checkout -b sf origin/serverfix,它会将本地分支与远程分支建立联系,也就是跟踪分支 2、git checkout --track origin/serverfix,手动指定跟踪哪一个远程分支 3、git checkout serverfix,当远程分支中刚好只有一个名字与其匹配,那么git 会自动进行跟踪

查看设置的所有跟踪分支命令: git branch -vv,会列出每一个分支正在跟踪哪个远程分支与本地分支是否是领先、落后或是都有。

注:这些领先、落后、都有的这些数值比较都是本地缓存的进行的,因此当要统计最新的,需要先git fetch --all

删除远程分支

git push origin --delete serverfix,这个命令做的只是从服务器上移除这个指针,比较容易恢复。

相关推荐
菜鸡爱玩7 小时前
Git详解
git
生信研究猿8 小时前
使用git上传项目到github
git·github
安大小万9 小时前
Git的命令大全
大数据·git·elasticsearch·团队开发·个人开发
babicu12311 小时前
Git 版本控制系统
git
用户196422987052413 小时前
Git拉代码,“连不上GitHub”还显示`port 443`?别慌,最强解决方案直接给你!
git
problc15 小时前
AI自动生成Git提交信息-git AI Commit
人工智能·git·elasticsearch
lqjun082715 小时前
Git克隆中断怎么办?继续克隆Hugging Face大型项目的完整指南
git
CZIDC1 天前
关闭不必要的系统服务-服务器更流畅、更安全
服务器·git·安全
yzhSWJ1 天前
InputStream重复读取导致文件损坏问题解决方案
git·github
穷人小水滴1 天前
git 开源平台网站推荐 (2025-06 更新)
git·开源·平台