Git基本操作命令
- 放两张图便于理解
- 第一张图,是只有本地仓库的相关操作,对文件的增删改、提交、撤销等

- 第二张图,是将远程仓库包含进来

创建仓库命令
|
|
提交与修改
|
|
提交日志
|
|
版本回退
git reset
- 三种不同的参数模式
- –soft:表示回退到某一个版本,并且保留工作区和暂存区中所有修改的内容
- –hard:表示回退到某一个版本,并且丢弃工作区和暂存区中所有修改的内容
- –mixed:介于soft和hard之间,表示保留工作区,但是丢弃暂存区中的内容
分支切换
|
|
删除文件
|
|
.gitignore文件
- 作用:自动忽略掉不需要被提交到版本库中的文件
- 日志文件、文件夹
- .class文件
- .o文件
- .env文件
- .zip和tar文件
- .pem文件
- 等等
- 匹配规则
- 空行或者亿#开头的行会被Git忽略。一般空行用于可读性的分割,#一般用作注释
- 使用标准的blob模式匹配,例如:
- 星号**通配任意个自负
- 问号?匹配单个自负
- 中括号[]表示匹配列表中的单个字符,比如:[abc]表示a/b/c
- 两个星号**表示匹配任意的中间目录
- 中括号可以使用短中线连接,比如:
- [0-9]表示任意一位数字,[a-z]表示任意一位小写字母
- 感叹号 ! 表示取反
|
|
远程操作
|
|
Git分支管理
关于git分支功能是Git强大的功能之一,可以让多个开发人员协作并行工作,开发新功能、修改bug,并最终汇集到主分支上。每一个分支都代表着一条独立的开发线路。关于git分支管理,有两个工作流模式,一个叫做Gitflow工作流,一个叫做Github工作流
- Gitflow工作流(比较复杂,不适合持续集成,适合团队人数较多的情况)
- 功能分支(Feature):开发人员以功能名称命名一个分支,独立于其他分支进行开发工作,完成开发后合并入共享开发分支。
- 共享开发分支(Develop):用于集成多个功能分支,一个版本全部功能开发完成后,可以拉出发布分支进行发布,而共享开发分支可以继续进行下一个版本的开发工作。
- 发布分支(Release):用于保存发布过程中产生的代码修改,发布后会将代码合并到共享开发分支和主分支。
- 热修复分支(Hotfix):当某个正式版本出现紧急 bug 需要修复时,从主分支的对应版本拉出 Hotfix 分支,进行紧急修复,发布后,合并回主分支。
- 主分支(Master):用于保存所有发布的版本。

- Github工作流(相对Gitflow工作流简单,适合团队人数较少的情况)

除了以上两种工作流模式外,还有GitLab Flow工作流。关于工作流模式此处不再详细介绍。
创建分支
|
|
查看分支
|
|
合并分支
|
|
删除分支
|
|
保存当前文件未提交更改并切换分支
|
|
Git提交历史
- git log
- 查看历史提交记录
- git blame
- 以列表形式查看指定文件的历史修改记录
命令:git log [选项] [分支名/提交哈希]
常用的选项包括:
-p:显示提交的补丁(具体更改内容)。--oneline:以简洁的一行格式显示提交信息。--graph:以图形化方式显示分支和合并历史。--decorate:显示分支和标签指向的提交。--author=<作者>:只显示特定作者的提交。--since=<时间>:只显示指定时间之后的提交。--until=<时间>:只显示指定时间之前的提交。--grep=<模式>:只显示包含指定模式的提交消息。--no-merges:不显示合并提交。--stat:显示简略统计信息,包括修改的文件和行数。--abbrev-commit:使用短提交哈希值。--pretty=<格式>:使用自定义的提交信息显示格式。
命令:git blame [选项] <文件路径>
常用的选项包括:
-L <起始行号>,<结束行号>:只显示指定行号范围内的代码注释。-C:对于重命名或拷贝的代码行,也进行代码行溯源。-M:对于移动的代码行,也进行代码行溯源。-C -C或-M -M:对于较多改动的代码行,进行更进一步的溯源。--show-stats:显示包含每个作者的行数统计信息。
恢复和回退
Git提供了多种方法来恢复和回退到之前的版本,不同的命令适用于不同的场景和需求
以下是几种常见的方法
git checkout:切换分支或恢复文件到指定提交。git reset:重置当前分支到指定提交(软重置、混合重置、硬重置)。git revert:创建一个新的提交以撤销指定提交,不改变提交历史。git reflog:查看历史操作记录,找回丢失的提交。
1、git checkout:检查出特定版本的文件
git checkout 命令用于切换分支或恢复工作目录中的文件到指定的提交
恢复工作目录中的文件到某个提交
|
|
切换到特定提交
|
|
2、git reset重置当前分支到特定提交
git reset命令可以更改当前分支的提交历史,它有三种主要模式:--soft、--mixed、--hard
- –soft:只重置HEAD到指定的提交,暂存区和工作目录保持不变
|
|
- –hard:重置HEAD到指定的提交,暂存区和工作目录都重置
|
|
- –mixed:重置HEAD到指定的提交,暂存区重置,但工作目录保持不变
|
|
3、git revert:撤销某次提交
git revert命令创建一个新的提交,用来撤销指定的提交,它不会改变提交历史,适用于已经推送到远程仓库的提交
|
|
4、git reflog:查看历史操作记录
git reflog:命令记录了所有HEAD的移动。即使提交被删除或重置,也可以通过reflog找回
|
|
Git标签
Git标签(Tag)用于给定仓库中的特定提交点加上标记,通常用于发布版本。比如你手里有一个项目完成了第一个阶段的功能,可以标记为v1.0版本,可以使用git tag -a v1.0命令给最新的一次提交打上v1.0的标签
- -a 选项意思为创建一个带注解的标签
标签语法格式如下
|
|
标签推送
默认情况下,git push不会推送标签,需要显式推送标签
|
|
删除标签
|
|
附注标签
附注标签存储了创建的名字、Email等信息,附注更为正式,适用于需要额外元数据的场景
附注标签语法如下
|
|
查看标签信息
|
|
删除标签
|
|