Git使用笔记
该文章持续更新中…
Git介绍
什么是Git
Git是一个开源的分布式版本控制系统。当我们在写代码的时候可能会出现多个版本的迭代,假如你写完两版代码后觉得第二版代码没有第一版好,但第一版代码已经被第二版给覆盖过去了。为了避免这个问题的出现,我们需要在写完一版代码后就对其进行备份(就像玩游戏时的存档)。但在本地备份时可能只是简单的将该项目的文件夹再复制出来一层,如果版本过多则可能需要占用很多的存储空间。Git就是将这个备份的过程程序化了,他会复制你的代码,让你随时可以退回到任何的一个版本。
区域概念
工作区: 在电脑中的本地文件目录 (工作路径下除了.git的所有外的所有文件)
暂存区: 英文名为
stage或index。一般存放在.git目录下的index文件中,所以我们把暂存区也称为索引版本库: 工作区中有一个隐藏文件夹
.git,这个就是Git的版本库
工作流程
Git一般工作流程如下:
- 先使用
git clone克隆远程资源到本地作为工作目录 - 对工作目录下的文件增删改
- 如果远程修改了则需要同步远程内容,使用
git pull就可以进行更新 - 修改了工作目录的文件后可以通过
git status查看修改的文件,再将该文件添加到暂存区,再从暂存区添加到版本仓库 - 修改完成后如果不满意可以对其进行回退,修改满意后再将其提交到版本仓库
- 使用
git pull将本地的修改推送到远程的git服务器中
Git基本命令
创建仓库
1 | # 初始化仓库 |
提交与修改
1 | # 添加文件到暂存区 |
提交日志
1 | # 查看历史提交记录 |
远程操作
1 | git remote # 远程仓库操作 |
分支管理
1 | xxx |
Git的基本使用
设置用户信息
设置全局用户信息
1 | git config --global user.name "用户名" |
创建版本库
当前的工作路径为D:\code\,通过初始化仓库后会在该路径下创建一个隐藏文件夹.git,该文件夹是Git用来跟踪管理版本用的,Git所需要的数据和资源都存放在这个目录下
1 | git init |
添加文件到版本库
在工作目录下创建一个文件readme.txt,文件内容如下: I am version 1,将工作目录下的文件readme.txt提交到暂存区中,命令执行成功后不会后反馈信息
1 | git add readme.txt |
查看仓库当前状态,显示有一个新文件
1 | git status |
将暂存区的文件提交到仓库中,再次查看仓库当前状态显示有一个文件已更改,一个文件插入
1 | git commit -m "初始版本" |

修改文件
当前的文件内容为Im version 1,在该文件后添加一段内容Im version 2,再对比仓库中文件的差异。可以看到文件内容从Im version 1变成了I am vsersion 1 (换行) I am version 2
1 | git diff readme.txt |

已经了解当前文件与上一版的差异,知道对该文件做了哪些修改后就可以放心的将该文件提交到仓库中,先添加到暂存区中,再添加到仓库中。或者直接执行git commit -a -m "备注"省去添加到暂存区的步骤
1 | git commit -a -m "增加了I am verison 2" |
版本回退
上述已经对文件readme.txt进行了修改且提交到仓库中,继续往文件添加一行内容I am version 3,然后提交到仓库中
1 | git commit -a -m "增加了I am verison 3" |
现在已经对文件readme.txt做了三次修改了,可以使用git log查看文件的修改记录(由近到远排序)。可以看到文件被修改的次数、时间、操作者、备注信息
1 | # 列出细节 |


如果想让文件回退到上一个版本的内容,就可以使用reset命令来进行版本回退,这时候再查看内容就会发现readme.txt内容变成了I am version 1 (换行) I am version2。如果要回退到上上个版本的话就是HEAD^^,有几个^就回退几个版本。如果想要回退到前100个版本可以将命令修改为HEAD~100
1 | git reset --hard HEAD^ |

再次查看日志可以发现第三版的修改记录已经不见了

如果想要再次回到第三版的话就需要查看一下所有的操作日志,可以在操作日志中看到每个版本的版本号,如初始版本的版本号为1c6663f
1 | git reflog |

再通过指定版本号后就能回到对应的版本中
1 | git reset --hard c58b7c9 |

撤销修改
继续在readme.txt末尾添加一行文本I am version 4,添加完成后对刚添加的内容不满意想要回滚到没添加之前,可以将文件提交到仓库后再使用git restet --hard HEAD^回退到上一个版本,也可以使用下方命令直接撤回到添加文本之前(在没有推送到暂存区时使用)
1 | git checkout readme.txt |

如果修改完后将文件提交到了暂存区,又对文件进行了修改,但还是不满意的话可以使用下方方法回退到暂存区的内容
继续在readme.txt末尾添加一行文本I am version 4,然后将其推送到暂存区中,在文件末尾继续添加一行I am version 5,现在想回到version 4就使用下方命令回退
1 | git checkout -- readme.txt |

删除文件
在工作目录下添加一个文件test.txt,将该文件提交到仓库中。将文件test.txt删除,删除文件后如果想要恢复该文件可以使用版本回退来解决,或者使用checkout恢复该文件(在没有提交到版本库之前)
1 | git checkout test.txt |

分支管理
远程仓库
Github
Gitee
Git服务器搭建
��





