文件修改后git add+git commit提交一次,但是没有push到远程,接着继续修改文件,继续git add+git commit提交,并push到远程仓库。会发现本地仓库两次commit一次push的操作最终会在远程仓库生成两条提交记录(即两次commit的提交)

自己是在工作的时候因为一个任务做完了,也commit到git了正准备push到远程仓库,突然改了需求,改动代码,重新commit一次,然后push到远程。最终我发现在远程仓库的提交记录是多出来两条,也就是这两次commit的记录。当时自己不是很理解,所以想要复现一下这个情况

为了在家里的电脑复现这个现象。步骤如下

1.首先需要配置一个git仓库。那么就需要用到Liunx系统了,同时需要一个虚拟机的软件来完成虚拟机的创建(笔者用的是VMware,自己上网下一个就好)

 git仓库配置参考教程如下:https://www.liaoxuefeng.com/wiki/896043488029600/899998870925664
 在配置过程中可能会遇到的问题和解决方法:

  • Ubuntu系统的镜像地址:                                                                                                   https://ubuntu.com/download/desktop
  • vmvare使用ubuntu镜像生成linux虚拟机教程:                                    https://blog.csdn.net/weixin_43465312/article/details/100233930
  •  linux系统创建好后无法通过xshell等工具远程连接解决:                    https://blog.csdn.net/meihuasheng/article/details/98473918 (注意:ssh功能需要自己安装)
  • 配置好git后发现没有.ssh文件的解决:                                                 https://blog.csdn.net/zaibeijixing/article/details/104561500。(需要注意的是.ssh不是默认生成在/home/git路径下,当时我自己测试的时候就不是)
  • 解决了.ssh文件的问题发现没有authorized_keys文件的解决方法:在对应目录下自己新建一个并且加入公钥即可
  • Liunx系统下的终端打开快捷键是ctrl+alt+T,该终端窗口兼容git命令

2.配置好仓库后,在windows随便一个文件夹中从liunx系统里的git仓库拉取代码下来(此时的仓库里是空的)

3.在拉下来这个文件夹中创建一个文件,随便写点啥

4.进行一次 git add +git commit +git push组合拳

5.然后使用xshell在linux系统中对应的代码仓库位置输入命令git log查看日志,会发现只有一次提交记录

  (记录截图就不给了,忘记截了)

6.然后在windows里面对文件进行第二次修改,并进行一次git add+git commit组合拳,但是不push远程

7.重复第5步,发现仍然只有一次提交记录

8.然后在windows里面对文件进行第三次修改,并进行一次git add+git commit+git push组合拳

9.重复第5步,会发现提交记录已经有3条了,成功复现

根据以上可以总结出,虽然第二次本地commit但是没有push,不会在远程仓库的log日志里记录。但是如果在第二次的commit基础上更改了文件并继续第三次commit,最终push到远程,那么远程仓库的日志是会记录本地的第二次和第三次commit日志的
晚安IT人!

原文地址:https://www.cnblogs.com/skyvalley/p/14820552.html