【背景】
想要重命名一个文件,并同步到远程
【过程】
1.我是直接把 “驱动增加he.c” 文件重命名为 “驱动增加播放he接口方法” ,想着直接提交就会同步重命名git仓记录的文件名。然后就可以推送到远程仓库,同步重命名远程仓库的文件名。
2.然后执行git操作,试图同步推送到远程库。操作如下:
3.以上可以看出,我重命名文件后, 并没有被git仓认可,git识别为 我删除了“驱动增加he.c” 同时增加了一个文件“驱动增加播放he接口方法”。
4.然后我提交到远程,试图同步重命名远程库的文件。操作如下:
5.查看远程仓库,发现远程仓的“驱动增加he.c”文件还在,同时新增加的文件“驱动增加播放he接口方法.c"被同步推送成功。
问题所在:
上面操作没有成功让git仓成功实现重命名的原因是操作不对,我上面的操作,其实git仓认为进行了2个操作:第一是删除了“驱动增加he.c”文件, 第二是增加了“驱动增加播放he接口方法.c”文件。但是我用的是“git add 我的总结/驱动增加播放he接口方法.c” ,完全没有管那个被删除的文件。
所以结果就是本地仍会提示我删除了一个文件,同时新加的文件又可以被推送到远程。
解决方法:
解决方法就是要让git仓把删除的文件也添加到暂存区,我不应该用git add xxx文件 进行添加暂存区,因为我指定了文件名,所以就无法把删除文件也添加到暂存区,应该使用“git add -u”命令,它默认只会将已经跟踪的文件(即之前已经提交过的文件)中的变化添加到暂存区,而不会暂存新文件(即之前未跟踪的文件)。
6.使用git add -u 把删除文件 “驱动增加he.c” 的问题解决,并同步到远程仓库,如下:
总结:
我的目的是重命名文件,一通操作搞复杂了。
正确的方式是使用 git mv 命令来重命名文件。
例如,要将“驱动增加he.c” 重命名为“驱动增加播放he接口方法.c”,应当用命令:
“git mv 驱动增加he.c 驱动增加播放he接口方法.c”
这样,在提交更改后,执行 git status 命令就会显示文件已被重命名。