开发当中与远程分支有关的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,这个命令做的只是从服务器上移除这个指针,比较容易恢复。

相关推荐
浅念-5 小时前
一文吃透Git:本地操作|冲突处理|远程协作|GitFlow工作流详解
大数据·git·elasticsearch·搜索引擎·gitflow
滕州市燕猫虎计算机科技工作室个体工商户9 小时前
Git常用命令汇总
git
czhc114007566311 小时前
2026-09-11 一日综合:树的父链、git 概念、三方死锁、静默失败
大数据·git·elasticsearch
ChampaignWolf11 小时前
abapgit-agent:用 Git 当中介,让 Claude Code 自己完成 ABAP 闭环开发
git·ai·abap·claude·abapgit·mcp
嘴贱欠吻!12 小时前
如何成为 CJMP 贡献者:AtomGit贡献流程与要求
git·ci/cd
滕州市燕猫虎计算机科技工作室个体工商户13 小时前
.gitignore文件不生效的解决方法
git·.gitignore·.gitignore不生效
hasty15 小时前
一个 Git 分支名,如何穿透到 CI Runner 的 Shell?
git·ci/cd
橘色的喵16 小时前
Claude Code 状态栏脚本:一行显示模型、上下文占用、git 分支和当前目录
linux·git·bash·claude
fangjianj16 小时前
git 常用命令
git
hasty18 小时前
execSync() 拼接 Git 参数的代价:从元数据到供应链执行
git·安全·安全性测试