Git中常见的一些问题总结

1、git添加到暂存区的修改,如果不想要了,怎么撤销

模拟使用一下这种场景:

新增了两个文件:f.txt和g.txt

然后提交到暂存区:

可以选择文件批量添加到暂存区中来。如上所述

此时颜色发生改变,表示存储到了暂存区。

但是如果此时此刻想把文件从暂存区中移出来,那么如何操作?

选择还原之后,可以看到依然是普通的文件,但是文件依然存在于工作目录下。

对应的git命令参考:https://blog.csdn.net/danniyedan/article/details/122695361

2、git添加到本地仓库,如果不想要了,怎么撤销

此时此刻已经回退到了未添加到暂存区之前的状态。

3、提交代码时发现别人已经提交了(没有代码冲突),此时需要重新拉取文件

同时在目录下创建c.txt和c.txt文件,各自修改各自的。

先提交c.txt,再提交b.txt;在提交b.txt的时候,出现了异常信息

那么需要首先进行拉取

拉取后会显示已经添加了c.txt文件

但是这个时候,自己提交的b.txt文件还需要推送到远程。

点击推送即可。

然后另外一个开发者想要拉取得到最新添加的b.txt文件,也需要重复上面的操作流程。

这也是开发人员最常用的方式:每天早上过来的时候,首先拉取一下最新的代码,然后在此基础上进行修改代码。

4、提交代码时发现别人已经提交且存在代码冲突,此时需要重新拉取文件、解决冲突,重新提交

接着上面所说,如果多个开发者同时修改的是同一个文件的情况,这个时候将会造成代码冲突。

假如两个人同时修改了b.txt文件,A先提交,那么对于A来说,是没有问题的;而在B提交的时候因为没有拉取最新提交的代码,就会遇到问题

那么这个时候,首先应该去拉取获取得到最新的文件信息。

依然会出现下面的问题。但是可以发现b.txt文件已经出现了感叹号了!

说明了存在着代码冲突,所以需要来解决冲突。我们不必做其他的事情,只需要在点击关闭的时候,会弹出一个窗口,如下:

然后会进入到一个窗口(会有提示窗口,点击确定即可)

那么展示出来的窗口如下所示:

只需要重点关注下上面标红的框框,以及显示的文字上面即可。

这里比较简单了!只需要做些操作即可。

修改完成之后,需要将当前冲突修改为“标记为已解决”,然后保存即可。

然后发现状态为已经修改,只需要再次提交即可。

提交的过程中,可以看到代码自动的给我们添加了注释,说明是修改了哪些代码冲突

然后确定完成之后,推送到远程仓库中去。

5、版本回退

如果某个版本不符合我们的预期,我们可以采取回退的方式。

在小乌龟中是最好操作的。

现有的版本:

加入说我们想要回退到第一次修改b.txt文件的地方,那么应该如何来进行操作?

然后选择

因为我想回退到只有第一次在b.txt中新增文字的地方,所以我选择Hard模式。

最终达到了目的

Soft、Mixed和Hard模式的区别

参考文章:https://blog.csdn.net/weixin_42740530/article/details/115914113

先要清楚在本地,git会分三个区:工作区、暂存区、本地库。

当使用去做版本移动的时候,那么在使用【--hard】、【--mixed】、【--soft】是不一样的。

1. --soft参数

git reset --soft abcdef
  • 仅仅移动本地库HEAD指针

仅仅是把本地库的指针移动了,而暂存区和你本地的代码是没有做任何改变的。但是这个时候你上次提交到本地库的代码状态是绿色的,即你未做【commit】操作。



2. --mixed参数

git reset --mixed abcdef
  • 移动本地库HEAD指针
  • 重置暂存区

不仅移动了本地库的指针,同时还把暂存区的代码也做了移动。也就是说你上次添加到暂存区的代码,现在变成了红色,即未做【add】操作。如果不写--mixed默认也是此参数



3. --hard参数

git reset --hard abcdef
  • 移动本地库HEAD指针
  • 重置暂存区
  • 重置工作区

不用解释了,除了上面描述的,同时你本地的代码就是你回退的版本代码。

不过很多时候,我们在回退更多的是要保留本地代码的,即使用--mixed参数。除非你是重新拉取一份,那可以使用--hard参数

最新文章

  1. Tomcat服务器本地的搭建,以及在 IDEA软件下的配置,以及项目的测试运行(基于supermvc框架下的web)
  2. 关于opengl库
  3. CSS3中的伪类选择器详解
  4. Android(shape.xml)
  5. Cocos2d-x 3.2 学习笔记(十二)TimberMan!疯狂伐木工!
  6. Ansible简明使用手册
  7. 10. JEB1.5 插件编写二
  8. 用ajax和js怎么做出滚动条滚到最下面分页
  9. 关于ScrollView中嵌套listview焦点滑动问题 解决
  10. 【转】Session ID/session token 及和cookie区别
  11. javascript设计模式8
  12. C-冒泡排序,选择排序,数组
  13. JSP标准标签库(JSTL)--核心标签库 c
  14. find 路径必须在表达式之前
  15. 【Vue】Vue中的父子组件通讯以及使用sync同步父子组件数据
  16. java-JProfiler(一)-安装以及简介
  17. 开源摄影机:Axiom Camera
  18. Mssql合并查询结果
  19. 《DSP using MATLAB》Problem 6.3
  20. 微信小程序笔记<一>初识小程序

热门文章

  1. 复习第二点-2.基于注解的helloworld
  2. Homebrew macOS飞速安装教程
  3. mysql误删数据恢复
  4. js判断数组的方法
  5. VS2015+QT5.10项目中文乱码
  6. 对SQL CTE的一点个人理解
  7. MargeSort
  8. Kubernetes二进制安装
  9. Java——四种线程创建方式
  10. satpy 处理卫星 FY4A 数据