Git图解-常用命令操作

目录

一、前言

二、初始化仓库

三、添加文件

四、Git 流程全景图

五、Git工作流程

六、工作区和暂存区

七、查看文件状态

八、查看提交日志

九、查看差异

十、版本回退

十一、管理修改

十二、修改撤销

十三、删除文件

十四、分支管理

十五、项目分支操作

十六、文件冲突

十七、转视频版


一、前言

接着上篇:Git图解-为啥是Git?怎么装?接下来,看下Git常用命令有哪些。

二、初始化仓库

Git操作前需要初始化仓库,用于存储版本管理的项目代码,目前Git仓库有2种类型:

  • 本地仓库:是在开发人员自己电脑上的仓库

  • 远程仓库:是在远程服务器上的仓库(跟团队其他成员共用,此处暂时不讲)

配置自己名称与邮箱账户,在公司一般是自己名称拼音与公司工作邮箱

git config --global user.name "Your Name"
git config --global user.email "[email protected]"

 

初始化本地仓库

git init

 

命令执行后,会在当前目录下多了一个.git的目录,这个目录是Git本地仓库,用于跟踪与管理代码(文件),没事别手动修改这个目录里面的文件,容易改乱了,导致Git仓库给蹦了。  

 这里要注意,部分小伙伴电脑没勾选 隐藏项目 选项,会看不见 .git 目录

三、添加文件

仓库初始化好了,怎么将文件添加到仓库,并管理起来呢?

步骤1:创建一个普通文本文件

 步骤2:将文件添加到暂存区

git add readme.txt

步骤3:将文件添加到版本库

git commit -m "添加了readme.txt文件"

 简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。 git commit命令执行成功后会告诉你,1个文件被改动(我们新添加的readme.txt文件)

扩展

如果后续添加文件多了,可以使用下面命令

git add file1.txt
git add file2.txt file3.txt
git add .   当前文件夹下所有文件
git commit -m "add 3 files."

四、Git 流程全景图

五、Git工作流程

 

六、工作区和暂存区

在Git中进行 crud 操作时都需要执行 git add 文件这个操作,底层操作将操作文件添加一个叫缓存区区域中缓存,当操作完毕之后,使用 git commit 操作,进行统一提交,将编辑文件统一同步版本中

 

七、查看文件状态

问题:如何查看项目目前的状态?我在电脑前写了一段时间代码,用Git管理,中途上厕所,然后又去吃了个苹果,继续回来工作,不记得之前用Git干了些什么了?

git status # 查看当前git版本库的状态(查看缓存区中的文件内容)

八、查看提交日志

实际工作中,我们脑子里怎么可能记得一个几千行的文件每次都改了什么内容,不然要版本控制系统干什么。版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用git log命令查看

git log

 git log 命令显示从最近到最远的提交日志,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:

git log --pretty=oneline

 黄色长长的字符串是本次提交的commit id, 是Git使用SHA-1算法产生唯一标识符,能保证全球唯一

九、查看差异

如果一个文件知道被人修改了,但如果能看看具体修改了什么内容,自然是更好的
比如你休假两周从国外回来,第一天上班时,已经记不清上次怎么修改的`readme.txt`,所以,需要用`git diff`这个命令看看:

git diff # 查看不同版本之间的文件差异

十、版本回退

我们不断修改文件,不断的往版本库中提交文件。就好比玩RPG游戏时,每通过一关就会自动把游戏状态存盘,如果某一关没过去,你还可以选择读取前一关的状态。Git也是一样,每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为 commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit 恢复,然后继续工作,而不是把几个月的工作成果全部丢失。

如果想回到上一个版本,应该怎么做呢?

Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

git reset --hard HEAD^

 回到指定版本

git reset --hard <commit id>

 拓展需求: 如何回退到最新版本

十一、管理修改

使用Git修改文件,存在一个需要探讨的问题:二次修改

操作方式1:

第一次修改 -> git add -> 第二次修改 -> git commit`

操作方式2:推荐使用

第一次修改 -> git add -> 第二次修改 -> git add -> git commit

注意:建议在每次 commit 之前先检查是否有文件没有被 add

十二、修改撤销

git checkout -- filename`可以丢弃工作区的修改:-- 后面是一个空格

命令 git checkout -- readme.txt 意思就是,把 readme.txt 文件在工作区的修改全部撤销,这里有两种情况: 一:readme.txt 自修改后还没有被放到暂存区(git add),现在,撤销修改就回到和版本库一模一样的状态; 二:readme.txt 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次 git commitgit add 时的状态。

 注意: git checkout -- file 命令中的 -- 很重要,没有 -- ,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到 git checkout 命令

十三、删除文件

一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了

git rm test.txt

这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了:

删除完成后需要 commit

如果删除了想恢复,可以使用 reset 版本恢复

步骤1:本地删除没用的文件(查看状态)

 步骤2:先 add 以下(查看状态与步骤1进行比较)

 步骤3:提交删除文件

十四、分支管理

分支管理的是Git灵魂,开发必不可少基本操作,必须掌握。

为啥存在分支?因为项目成品经过这几个流程: 开发, 测试,上线,bug修改,多版本发布等。同一个项目不同版本同时开发,同时测试,同时上线,怎么确保在这种复杂情况下让项目能独立,又能相关关联执行下去呢?Git给出解决方案是分支管理, 每一个阶段就是一个分支,即可以相互独立,又可以相互合并。

查看分支

git branch

创建分支

git branch <name>

切换分支

git checkout <name>

创建 + 切换分支

git checkout -b <name>

合并分支

将某分支合并到当前分支

git merge <name>

删除分支

git branch -d <name>

十五、项目分支操作

简化版

完整版

master分支:用于版本的更新,当比较大的功能开发完成或者更新之后会有一次集体的发版,就会将所有的代码都合到master(有的公司也会用release分支发版,原理都是一样);

develop分支:一般是开发测试分支,在项目发版上线之前都会现在dev分支上统一进行测试,确保功能达标没有bug之后再推到master分支;

feature分支:用来做分模块功能开发,建议命名为feature-xxx,模块完成之后,会合并到 dev 分支;

hotfix/fixbug分支:是用来做线上的紧急 bug 修复的分支,建议命名为 hotfix-xxx。当线上某个版本出现了问题,将检出对应版本的代码,创建 Hotfix 分支,问题修复后,合并回 dev和master ,这里注意,合并到 master 的时候,一般要打上修复后的版本标签。

扩展阅读:一种优雅的Git分支实践_git 分支管理最佳实践_浪飞yes的博客-CSDN博客

十六、文件冲突

分支1中有个文件跟其他分支文件一样,如果同时发生修改了,进行合并,就出现文件冲突问题。

 

 

到这,本篇就结束了,欲知后事如何,请听下回分解~

十七、转视频版

看文字不过瘾可以切换视频版:4小时让你直接上手Git操作

猜你喜欢

转载自blog.csdn.net/langfeiyes/article/details/129367051