git初学总结(三) 远程管理

版权声明:那个啥,转载注明出处哈 https://blog.csdn.net/qq_36415230/article/details/81878040

如果大家使用同一个分支,终会出现一个人上传代码后,覆盖掉远程代码,导致其他人拉取失败的问题。

这个时候,除最终上传代码的人外,其他人想上传代码那几乎不可能,即使时上传者本人,也只能在原有的基础上,做修改。

总之,正常的方法,在此时是无法覆盖远程代码的了。

暂缓先不说出现这个问题的原因,只说解决办法。

一,版本回退,拉取失败,那就强制拉取(我的理解 )

     

git pull --rebase 远程主机名 远程分支名
远程主机名默认origin .

例如:
git pull --rebase origin dev

代表拉取远程节点到本地库,并且合并。
也就是说,远程库的操作记录和本地的合并了。

这个时候,输入
git log

查看历史版本号,复制,英文状态下的q退出git log。



输入
git reset --hard 版本号  

回退到对应的版本

再输入
git push origin dev -f 
采用强制推送。此时就可以覆盖掉远程的代码了。

需要注意的是,这种方法会丢失在这个版本之后的修改,而且,导致上传覆盖代码的人会丢失远程修改,这个时候,在确保覆盖代码的人代码正确前不允许其上传,不然还是会覆盖。

如果说那个人要重写,少了,无所谓,多的话,就不好办了。好在有一个补救的法子


执行之前的几步操作,现在远程库应该是正确的

之前覆盖代码的人执行命令
git pull --rebase origin dev

拉取远程的操作记录到本地并合并。git log一下,看看是否有了远程其他小伙伴的操作记录。
有的话,就可以push上去了。

如果不行,那只能另建文件夹悲催的复制粘贴了。或者重写。

二,就是确定自己电脑的版本无误,直接强制推送。

强行推送一波,覆盖掉服务器上的代码
git push origin dev -f

好了,现在来说一说为什么会出现这个问题,

当我们进行提交操作时,是将我们所在分支指向前一个节点,push操作时,会将我们所有节点上传,远程分支会合并我们的分支,就是将原有的指针直接指向最新节点,当提交次数过多时,git会认为所提交的所有文件都是最新版。会覆盖掉原有的文件。

那么我们在平时的编辑中就应该注意

1. 每次修改前先拉取,保证自己的代码是新的代码。以防冲突过多而不得不放弃修改。

2. 减少提交的次数,将改好的文件放置暂存区中,确保无误后在提交至版本库中。

猜你喜欢

转载自blog.csdn.net/qq_36415230/article/details/81878040