个人工作中使用版本控制git的总结

git使用总结

一、工作中代码修改的基本步骤

1、代码提交切换分支前要先pull在切换分支提交(因为不pull最新的代码如果其他人修改了你修改的文件内容你在提交就会出现冲突)。

2、代码修改后新建一个分支,在新建的分支中执行,add,commit,push的操作

3、查看本地commit记录
git log

4、查看本地所有操作记录
git reflog

5、删除远程分支
git branch -a 查看远程分支
git push origin --delete (删除的分支)

二、项目中出现一下情况该如何处理

1、执行pull操作与本地的更改本地出现冲突如何解决?

第一种:在本地解决冲突,确定使用远程的版本还是本地修改的版本内容。

第二种:撤销pull操作或commit操作(使用reset

方法1:
git reset --hard HEAD^(或者HEAD~1)撤销操作,将代码还原成上一次提交的版本,本地修改不会被保存!!(如果本地修改后再pull建议用下面两种方式)

方法2:
git reset --soft HEAD^ (或者HEAD~1),撤销操作,将代码还原成上一次提交的版本,还原到git add的位置,暂存区的内容被保存,

方法3:
git reset --mixd HEAD^(或者HEAD~1),撤销操作,将代码还原成上一次提交的版本,修改的文件未add

2、文件添加到了暂存区撤销不添加到暂存区?
git reset HEAD 文件名 将指定文件从暂存区撤销

3、push后发现代码有问题如何处理?
遇到这种问题如果远程合并后就先revert,再reset本地然后再add commit push一个版本

4、reset后在push报错处理
原因:
reset删除了指定版本后的所有版本,导致本地指向比远程的指向旧
解决:加上-f强制推送
git push -f

三、git的版本管理,及HEAD的理解

使用git的每次提交,Git都会自动把它们串成一条时间线,这条时间线就是一个分支。如果没有新建分支,那么只有一条时间线,即只有一个分支,在Git里,这个分支叫主分支,即master分支。有一个HEAD指针指向当前分支(只有一个分支的情况下会指向master,而master是指向最新提交)。每个版本都会有自己的版本信息,如特有的版本号、版本名等。如下图,假设只有一个分支:
xlshk

四、reset和revert区别讲解

git reset

原理: git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本,如下图所示,假设我们要回退到版本一:
这里写图片描述

在这里插入图片描述

适用场景: 如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。

git revert

原理: git revert是用于“反做”某一个版本,以达到撤销该版本的修改的目的。比如,我们commit了三个版本(版本一、版本二、
版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert
命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。如下图所示:

在这里插入图片描述

适用场景: 如果我们想撤销之前的某一版本,但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法

总结:
reset操作会将版本回退到指定分支,回退后指定分支后面的版本全部删除,revert就是对一个版本重做,在回退的版本上生成一个新的版本。

补充:

1、工作区文件如何还原到没修改前状态

2、还原修改单个文件
git checkout [filepath]

3、还原修改所有文件
git checkout .

4、回退add的文件
git reset HEAD [文件名]

猜你喜欢

转载自blog.csdn.net/wei1359765074410/article/details/122070377