Git 中如何比较不同版本之间的差异?常用命令有哪些?
回答重点
1) git diff <commit1> <commit2>
:比较两个指定的提交之间的差异。
2) git diff <branch1> <branch2>
:比较两个分支之间的差异。
3) git diff <path>
:比较工作目录中某个文件或目录的当前状态与暂存区最后一次提交之间的差异。
4) git diff --staged
或 git diff --cached
:比较已暂存的改动与最后一次提交之间的差异。
扩展知识
1) 比较两个提交:
- 命令:
git diff <commit1> <commit2>
- 示例:
git diff 7a5cbd8 e3a1b2d
假设你有两个提交,标识分别为 7a5cbd8 和 e3a1b2d,这个命令将显示这两个提交之间的差异。
2) 比较两个分支:
- 命令:
git diff <branch1> <branch2>
- 示例:
git diff feature-branch master
如果你有一个feature-branch
和master
分支,这个命令将显示两个分支之间的差异。
3) 比较文件的当前状态和暂存区的最后一次提交:
- 命令:
git diff <path>
- 示例:
git diff src/main.py
这个命令显示src/main.py
文件当前未提交的改动。
4) 比较已暂存的改动与最后一次提交:
- 命令:
git diff --staged
或git diff --cached
- 示例:
git diff --staged
查看已经用git add
暂存的文件和最后一次提交之间的差异。注意这和git diff
不同,后者检查工作目录中未被暂存的变更。
此外,以下命令也经常结合 git diff
使用:
1) git log
:查看提交历史。你可以用 git log
来获取提交 ID,以便和 git diff
结合使用。例如 git log --oneline
会显示简要的提交历史。
2) git show
:显示一个提交的详细信息,包括变动的内容。用法: git show <commit>
。
3) git status
:显示工作目录的状态,包括哪些文件有改动、哪些文件已经暂存等。