实际操作中遇到如下问题:在Github上有以下文件:
remote: a b c
使用git clone到本地
local : a b c
然后有以下操作,在本地将b重命名为d(先),在服务器上添加文件e(后)。
于是现在的情况变成了如下:
remote: a b c e local : a c d #其中d是由b复制后修改而来
此时,如果在本地使用pull命令,将得到以下结果
remote: a b c e local : a c d e
问题出现:b文件无法被拉取下来,因为服务器上的版本较低,系统认为是重命名操作,b文件并非被删除。而e文件显然被正常拉取
考虑到另一种情况,如果在本地使用的是push命令,则Github上的b文件将被删除并增加一个d文件。
那么如何才能在本地重新获得b文件呢?
答案是:git checkout
在本地执行checkout b,就能把本地仓库的b文件拉取出来:
git checkout b
最后,简单的回顾一下问题:
现状:
remote: a b c e local : a c d
解决:
git pull origin master git checkout b git commit git push origin master
结果:
Github: a b c d e local : a b c d e
远程仓库和本地保持了一致。复制操作完成。