2023年11月29日发(作者:)

git同步远程仓库分⽀

git命令

1.何谓同步远程分⽀?有下⾯⼏种情况,

1.本地有新分⽀,远程仓库没有。

2.远程仓库有新分⽀,本地没有。

3.本地删除了分⽀,远程也想删除。

4.远程删除了分⽀,本地也想删除。

第⼀种情况很好解决,将本地分⽀推送到远程仓库即可。

本⽂主要讲解后⾯⼏种情况的解决办法。

2.第⼆种情况:远程仓库有新分⽀,本地没有。

这在之前我先介绍⼏个命令。

1.将某个远程主机的更新,全部取回本地:git fetch

2.查看远程分⽀:git branch -a

3.查看本地分⽀:git branch

4.切换分⽀:git checkout 分⽀

熟悉了以上命令,接下来我们通过⼀个例⼦来讲解第⼆种情况的解决办法。

假如我本地有个git仓库,别⼈推送了⼀个新分⽀到远程仓库,我要获取这个分⽀到本地,该怎么办?

1.我需要git branch查看⼀下本地分⽀,再git branch -a查看⼀下远程分⽀,对⽐下,远程存在哪些本地没有的新分⽀。但发现,本地和远

程的⼀样。奇怪,在远程仓库(gitlab/github)明明看到了新分⽀啊。

原来现在本地上的现在的远程分⽀记录是克隆仓库时当时的分⽀记录。所以我需要

1.⾸先将某个远程主机的更新,全部取回本地:git fetch

2.再次查看远程分⽀:git branch -a 发现远程的分⽀已经可以看见了。

3.然后拉取远程分⽀到本地:git checkout -b 远程分⽀名 origin/远程分⽀名

注:直接克隆整个仓库,可以直接使⽤git checkout 分⽀名切换到分⽀。因为克隆时候已经有远程所有的分⽀记录。但若之前已经克隆过,后来

3.第三种情况:本地删除了分⽀,远程也想删除。

这在之前我先介绍⼏个命令。

1.删除远程分⽀: git push origin -d 分⽀名

2.删除本地分⽀: git branch -d 分⽀名

熟悉了以上命令,接下来我们通过⼀个例⼦来讲解第三种情况的解决办法。

假如我在本地想要删除某个分⽀,我也想把远程仓库的这个分⽀也要删掉怎么办?

1.使⽤git branch -d 分⽀名来删除本地分⽀。

2.使⽤git push origin -d 分⽀名直接来删除远程分⽀。在次使⽤git branch -a,发现分⽀已经不存在了。

或者

1.使⽤git branch -d 分⽀名来删除本地分⽀。

2.最简单的解决办法就是直接到gitlab/github进⾏删除.

假如我只想把远程的删除掉怎么办?

1.使⽤git push origin -d 分⽀名直接来删除远程分⽀。此时删除的只是远程的分⽀,本地仍然存在

或者

1.直接到gitlab/github进⾏删除.

4.第四种情况:远程删除了分⽀,本地也想删除。。

这在之前我先介绍⼏个命令。

1.查看远程分⽀和本地分⽀的对应关系:git remote show origin

2.删除远程已经删除过的分⽀:git remote prune origin

熟悉了以上命令,接下来我们通过⼀个例⼦来讲解第四种情况的解决办法。

假如我直接到gitlab/github删除了某个分⽀,我在本地使⽤git branch -a查看远程分⽀,依然存在并且可以切换使⽤。

branch -a查看远程分⽀,红⾊的是本地远程远程分⽀记录。

2.执⾏下⾯命令查看远程仓库分⽀和本地仓库的远程分⽀记录的对应关系:

git remote show origin

3.会看到:

refs/remotes/origin/远程仓库已经删除的分⽀名 stale (use 'git remote prune' to remove)

其中:

Local refs configured for 'git push': 命令下⾯的分⽀是本地仓库的远程分⽀记录中仍存在的分⽀,但远程仓库已经不存在。

4.输⼊git remote prune origin来删除远程仓库已经删除过的分⽀

5.验证 git branch -a

此时可以看到本地远程分⽀记录已经和远程仓库保持⼀致了。

实际测试截图

image