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

相关推荐
Andya_net14 小时前
Git | git revert命令详解
git
黑客Jack18 小时前
[Python/网络安全] Git漏洞之Githack工具基本安装及使用详析
git·python·web安全
Cikiss21 小时前
Git分支——《Pro Git》
java·git·后端
Cikiss1 天前
Git 基础——《Pro Git》
git·后端·源代码管理
多多*1 天前
后端技术选型 sa-token校验学习 下 结合项目学习 前后端登录
java·redis·git·学习·github·intellij-idea·状态模式
微臣愚钝1 天前
【git】-3 github创建远程仓库,上传自己的项目,下载别人的项目
git·github
code袁1 天前
校园跑腿小程序---轮播图,导航栏开发
git·小程序·校园跑腿·notepad++·小程序开发
LostSpeed2 天前
git - 用SSH方式迁出远端git库
git·ssh
fury_1232 天前
js:根据后端返回数据的最大值进行计算然后设置这个最大值为百分之百,其他的值除这个最大值
git
多多*2 天前
新版本的IDEA如何解决Git分支显示为警告⚠<unknown>的问题
java·git·intellij-idea