【Git学习笔记】3:远程库版本同步

版权声明:本文为博主原创学习笔记,如需转载请注明来源。 https://blog.csdn.net/SHU15121856/article/details/82047822

Git是分布式的,且本质上并无中心一说,只是一般把GitHub或者自己搭的Git远程库当成一个中心仓库。远程库和本地库一样,都是根据.git/目录的内容来知道有哪些版本以及版本的具体改动。

回退和前进的基本操作

Git中的HEAD指针指向的版本就是当前版本,回退或前进版本都是在改HEAD指针。前面学过,在本地库上回退k个版本可以:

git reset --hard HEAD~k

在本地库上回退或前进版本可以:

git reset --hard 足够唯一标识版本号的非空活前缀

然后提交到远程库,就只需要再git push一下。回退时需要-f强制更新

git push -f origin master

但是在这之前需要注意远程库和本地库是不是一样的,如果最后一次提交是自己提交的,那肯定是一样的了,自己回退再push上去没问题,在本地库上回退并强制更新以后,git reflog也能看到所有的版本号
这里写图片描述
这时如果在本地库上再做版本前进,然后再提交到远程仓库:
这里写图片描述
这时远程库上的版本就前进了:
这里写图片描述

清除别人提交的错误版本

因为push提交上去的其实就是有.git版本库的,所以如果有人在自己之后提交了错误的东西,比如没有提交到自己的分支上:
这里写图片描述
拿自己的再git push -f一遍就又变回自己的了:
这里写图片描述
需要注意的是因为是把自己的.git库强制更新了上去,别人提交的那个版本在自己的仓库上git reflog是看不到的:
这里写图片描述
如果需要找回那个版本,就需要到对方的本地库,或者在从他push到自己强制更新这段时间内有人clone或者pull的仓库里找了。

git pull

前面的远程库版本操作还有一种情况,就是因为其他人在该分支上的提交导致远程库的版本和本地库不一样,并且其他人没有错误提交。
这里写图片描述
如果这段时间自己什么改动都没做,也就是本地库的版本是远程库中从某个版本之前的版本,那么就只要git pull拉一份最新的下来
这里写图片描述
如果自己也做了改动,那在这个分支上就很麻烦了,所以在Git上应该多使用分支,避免多人的提交发生这种冲突。

猜你喜欢

转载自blog.csdn.net/SHU15121856/article/details/82047822