Git 命令

发布于 2022-04-19  1.16k 次阅读


1.Git add 跟踪文件/将文件添加到暂存区

git add 命令使用文件或目录的路径作为参数;如果参数是目录的路径,该命令将递归地跟踪该目录下的所有文件

 

2.Git status 检查当前文件状态

可以用 git status 命令查看哪些文件处于什么状态。

状态包括:

  1. nothing to commit, working directory clean 这说明你现在的工作目录相当干净。换句话说,所有已跟踪文件在上次提交后都未被更改过。(克隆仓库后所有的文件默认会被跟踪)

  2. Untracked files 未跟踪。跟踪的文件意味着 Git 在之前的快照(提交)中没有这些文件;Git 不会自动将之纳入跟踪范围,除非你明明白白地告诉它“我需要跟踪该文件”。(使用 Git add进行跟踪)

  3. Changes to be committed 暂存已修改。该文件已被跟踪且暂存,其修改已经更新到暂存区,还未提交到版本库。

 

3.Git diff 查看已暂存和未暂存的修改

Git diff——已修改未Add的内容

想知道具体修改了什么地方,可以用 git diff 命令。 此命令比较的是工作目录中当前文件和暂存区域快照之间的差异。 也就是修改之后还没有暂存起来的变化内容。(已修改未Add的内容)

Git diff --staged——已Add未Commit的内容

若要查看已暂存的将要添加到下次提交里的内容,可以用 git diff --staged 命令。 这条命令将比对已暂存文件与最后一次提交的文件差异。(已Add未commit的内容)

如果你要同时查看当前工作区所有的改动,包括已经Add的文件和已修改未Add的文件,则推荐使用Git status

 

4.Git commit 提交更新

Git commit——提交已Add的内容

现在的暂存区已经准备就绪,可以提交了。 (只会提交已Add的文件)

在此之前,请务必确认还有什么已修改或新建的文件还没有 git add 过, 否则提交的时候不会记录这些尚未暂存的变化。 这些已修改但未暂存的文件只会保留在本地磁盘。 所以,每次准备提交前,先用 git status 看下,你所需要的文件是不是都已暂存起来了, 然后再运行提交命令 git commit

请记住,提交时记录的是放在暂存区域的快照。 任何还未暂存文件的仍然保持已修改状态,可以在下次提交时纳入版本管理。 每一次运行提交操作,都是对你项目作一次快照,以后可以回到这个状态,或者进行比较。

Git commit -a 跳过使用暂存区域一键提交所有改动

尽管使用暂存区域的方式可以精心准备要提交的细节,但有时候这么做略显繁琐。 Git 提供了一个跳过使用暂存区域的方式, 只要在提交的时候,给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤。

关于Git中移除文件及修改文件名略

 

 5.Git log 查看提交历史

Git log——Commit的历史

不传入任何参数的默认情况下,git log 会按时间先后顺序列出所有的提交,最近的更新排在最上面。 正如你所看到的,这个命令会列出每个提交的 SHA-1 校验和、作者的名字和电子邮件地址、提交时间以及提交说明。

Git log -p / -patch ——附带每次Commit的具体变化

其中一个比较有用的选项是 -p--patch ,它会显示每次提交所引入的差异(按 补丁 的格式输出)。 你也可以限制显示的日志条目数量,例如使用 -2 选项来只显示最近的两次提交。

该选项除了显示基本信息之外,还附带了每次提交的变化。

Git log --stat——附带每次Commit的总结信息

如你想看到每次提交的简略统计信息,可以使用 --stat 选项.正如你所看到的,--stat 选项在每次提交的下面列出所有被修改过的文件、有多少文件被修改了以及被修改过的文件的哪些行被移除或是添加了。 在每次提交的最后还有一个总结

Git log --pretty=format:"%h - %an, %ar : %s"——格式化输出日志

Git log --no-merges 隐藏合并提交

 

6.Git 撤销操作

Git commit --amend 重写最近的一次Commit

有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选项的提交命令来重新提交。

这个命令会将暂存区中的文件提交。 如果自上次提交以来你还未做任何修改(例如,在上次提交后马上执行了此命令), 那么快照会保持不变,而你所修改的只是提交信息。

文本编辑器启动后,可以看到之前的提交信息。 编辑后保存会覆盖原来的提交信息。

例如,你提交后发现忘记了暂存某些需要的修改,可以像下面这样操作:

$ git commit -m 'initial commit' $ git add forgotten_file $ git commit --amend

最终你只会有一个提交——第二次提交将代替第一次提交的结果。

其作用为:重写最近的一次commit,在历史中只会存在一次commit记录,以保护我们的仓库历史


她喜欢所以就做咯