小言_互联网的博客

Github:05---git之(git的基本操作:git init/status/add/commit/log/diff/rm)

522人阅读  评论(0)

一、初始化仓库(git init)

  • 要使用Git进行版本管理,必须先初始化仓库。Git是使用git init命令进行初始化的
  • .git目录:如果初始化成功,执行了git init命令的目录下就会生成.git目录。这个.git目录里存储着管理当前目录内容所需的仓库数据

演示案例

  •  例如,下面建立一个目录并初始化仓库

   
  1. mkdir git-tutorial
  2. cd git-tutorial
  3. git init

  • 生成一个新的.git目录,目录中有一些初始化文件

  • 该目录的类型属于“工作树”:
    • 在Git中,我们将这个目录的内容称为“附属于该仓库的工作树”
    •  文件的编辑等操作在工作树中进行,然后记录到仓库中,以此管理文件的历史快照
    • 如果想将文件恢复到原先的状态,可以从仓库中调取之前的快照,在工作树中打开。开发者可以通过这种方式获取以往的文件。

二、查看仓库的状态(git status)

  • git status命令用于显示Git仓库的状态。这是一个十分常用的命令
  • 工作树和仓库在被操作的过程中,状态会不断发生变化。在Git操作过程中时常用git status命令查看当前状态

演示案例

  • 接着上面的演示案例,我们来实际查看一下当前状态,结果显示了我们当前正处于master分支下,接着还显示了没有可提交的内容
git status

  • 我们新建一个README.md文件,然后再次查看当前仓库的状态,可以看到在 Untracked files 中显示了 README.md 文件

   
  1. touch README .md
  2. git status

三、向暂存区添加文件(git add)

  • 如果只是用Git仓库的工作树创建了文件,那么该文件并不会被记入Git仓库的版本管理对象当中。因此我们用git status命令查看 README.md文件时,它会显示在 Untracked files 里
  • 要想让文件成为Git仓库的管理对象,就需要用git add命令将其加入暂存区(Stage或者Index)中。暂存区是提交之前的一个临时区域

演示案例

  • 接着上面的演示案例,我们将README.md文件加入暂存区
git add README.md

  • 再次查看当前仓库的状态,可以看到README.md 文件显示在Changes to be committed中了

四、保存仓库的历史记录(git commit

  • git commit命令可以将当前暂存区中的文件实际保存到仓库的历史记录中。通过这些记录,我们就可以在工作树中复原文件

-m选项

  • 在保存时,可以使用-m选项来提供一条提交信息,该信息是对提交的概述
  • 例如:
git commit -m "First commit"

 

不加任何选项(记述详细提交信息)

  • 如果只执行“git commit”命令,不带任何选项,那么命令回车之后就会开启编辑器,并显示如下结果(因为上面已经提交过了,所以下面的图片来自于另一次实验)

  • 在编辑器中记述提交信息的格式如下:
    • 第一行:用一行文字简述提交的更改内容
    • 第二行:空行
    • 第三行以后:记述更改的原因和详细内容
  • 只要按照上面的格式输入,今后便可以通过确认日志的命令或工具看到这些记录
  • 在以#标为注释的Changes to be committed(要提交的更改)栏中,可以查看本次提交中包含的文件。将提交信息按格式记述完毕后,请保存并关闭编辑器,以#标为注释的行不必删除。随后,刚才记述的提交信息就会被提交

中止提交

  • 如果在编辑器启动后想中止提交,请将提交信息留空并直接关闭编辑器,随后提交就会被中止
  • 提交完成之后可以查看一下提交后的状态,结果显示当前工作树处于刚刚完成提交的最新状态,所以结果显示没有更改

五、查看提交的日志(git log)

  • git log命令可以查看以往仓库中提交的日志。包括可以查看什么人在什么时候进行了提交或合并,以及操作前后有怎样的差别。关于 合并我们会在后面解说

演示案例

  • 接着上面“git commit”的演示,我们先来看看刚才的 git commit命令是否被记录了
git log

  • 如上图所示,屏幕显示了刚刚的提交操作:
    • commit栏旁边显示的 “47c4873……”是指向这个提交的哈希值。Git的其他命令中,在指向提交时会用到这个哈希值
    • Author栏中显示我们给 Git 设置的用户名和邮箱地址
    • Date栏中显示提交执行的日期和时间
    • 再往下就是该提交的提交信息

只显示提交信息的第一行(--pretty=short)

  • 如果只想让程序显示第一行简述信息,可以使用--pretty=short。这样一来开发人员就能够更轻松地把握多个提交
git log --pretty=short

只显示指定目录、文件的日志

  • 只要在git log命令后加上目录名或文件名,那么该命令就只会显示与该目录和该文件有关的日志
  • 例如,下面查看与README.md有关的日志
git log README.md

显示文件的改动(-p)

  • 如果想查看提交所带来的改动,可以加上-p参数,文件的前后差别就会显示在提交信息之后
  • 例如,下面只查看README.md文件的提交日志以及提交前后的差别
git log -p

以图表的形式查看日志(--graph)

git log --graph

六、查看更改前后的差别(git diff)

  • git diff命令可以查看工作树、暂存区、最新提交(版本库)之间的差别
    • git diff:没添加其它选项,默认查看工作树与暂存区之间的差别
    • git diff --cached:对比暂存区和版本库之间的差别
    • git diff HEAD:HEAD是指当前分支中最新一次提交的指针,因此是用来查看工作树和版本库之间的差别

演示案例

  • 第一步:接着上面的一些演示案例,现在我们在README.md中写点东西
# Git教程

  • 第二步(查看工作树和暂存区的差别):执行git diff命令,查看当前工作树与暂存区的差别
    • 由于我们尚未用 git add命令向暂存区添加任何东西,所以程序只会显示工作树与最新提交状态之间的差别
    • “+”号标出的是新添加的行,“-”号标出的是新删除的行;此处我们只添加了一行,所以下图在最后一行显示了“+”号一行

  • 第三步:git add命令将 README.md 文件加入暂存区
git add README.md

  • 第四步:如果现在执行git diff命令,因为上面我们使用git add把文件放入了暂存区,所以工作树和暂存区的状态并无差别,结果什么都不会显示

  • 第五步(查看当前工作树与上一次提交(版本库)之间的差异):默认情况下,diff命令查看的是“工作树和暂存区之间”的差别,如果想要查看“当前工作树与上一次提交(版本库)”的差别,那么可以加入HEAD选项,HEAD是指当前分支中最新一次提交的指针
git diff HEAD

  • 第六步:上图我们看到了“当前工作树与版本库”之间的差异,下面我们使用commit来提交内容

  • 第七步:再次查看日志,确定提交成功

七、删除操作(rm)

  • git删除命令为rm,可以通过如下命令获取rm相关说明:

  • 选项意思如下:
    • -n, --dry-run:演习
    • -q, --quiet:不列出删除的文件
    • --cached:只从索引区删除,本地的文件还存在
    • -f, --force:忽略文件更新状态检查
    • -r:允许递归删除
    • --ignore-unmatch:即使没有匹配,也以零状态退出

演示案例

  • 现在仓库中有一个bloomfilter的目录,我们想删除这个目录

  • 执行下面的命令删除
git rm -r bloomfilter

  • 查看一下状态

  • 保存仓库的历史记录
git commit -m "删除bloomfilter目录"

  • 将记录推送到远程仓库,因为我当初clone仓库的时候使用了SSH,所以下面要输入账号和密码,如果是https形式clone的就不需要了
git push

  • 重新查看,没了


转载:https://blog.csdn.net/qq_41453285/article/details/106125507
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场