📜  git log show diff - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:41:26.487000             🧑  作者: Mango

Git Log 和 Diff命令

Git Log 命令用于显示提交历史记录。它可以显示提交的作者、提交的时间、提交消息和提交所在分支等信息。下面是一些常用的 git log 命令选项:

  • -p:显示每个提交的 diff;
  • --stat:显示每个提交的文件更改统计信息;
  • --graph:在输出中画出 ASCII 图形表示的分支和合并历史;
  • --oneline:将每个提交压缩成一行,并只显示它的哈希值和提交消息。

示例:

$ git log --oneline -5
529aac5 (HEAD -> master) Add script to backup MySQL databases
b458d13 Fix typos in README
08c7b3f Add instructions to README
4f2b89c Initial commit

上面的命令表示显示最近五个提交,使用 --oneline 选项将每个提交压缩成一行,只显示它的哈希值和提交消息。

Git Diff 命令用于比较两个不同版本之间的差异。下面是一些常用的 git diff 命令选项:

  • <commit>:将文件与指定的提交进行比较。如果省略 <commit>,则与工作目录中的文件进行比较;
  • --cached/--staged:将文件与所暂存的修改进行比较;
  • --color-words:以单词为单位进行比较,而不是逐行比较;
  • --name-only:只显示发生更改的文件的名称;
  • --name-status:显示发生更改的文件的名称以及修改类型。

示例:

$ git diff
diff --git a/README.md b/README.md
index 0028a50..efd5d3d 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
 # Git Log 和 Diff命令

-**Git Log** 命令用于显示提交历史记录。它可以显示提交的作者、提交的时间、...
+**Git Log** 命令用于显示提交历史记录。它可以显示提交的作者、提交的时间、提交...

上面的命令表示比较工作目录中的 README.md 文件与它最近提交的版本之间的差异。使用 diff 命令选项 -gitindex---+++ 开始的行是 diff 格式的标准行,表示文件的不同之处。

如果需要查看某一次提交的具体更改,可以使用 git show <commit> 命令,它会显示这次提交的详细信息以及包括 diff 在内的更改。

示例:

$ git show 529aac5
commit 529aac5eeccbf349a9eb616f306cb87d22b97e31
Author: Andy <andy@example.com>
Date:   Mon Jan 1 10:00:00 2018 +0800

    Add script to backup MySQL databases

diff --git a/mysql-backup.sh b/mysql-backup.sh
new file mode 100755
index 0000000..c04d5ef
--- /dev/null
+++ b/mysql-backup.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+DB_NAME="my_db"
+DB_USER="root"
+DB_PASSWORD="my_password"
+BACKUP_DIR="/backups/mysql"
+
+mkdir -p $BACKUP_DIR
+
+mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_DIR/$DB_NAME-$(date +%Y-%m-%d).sql

上面的命令表示显示提交 529aac5 的详细信息,包括作者、提交时间、提交消息和 diff 等信息。