在 Git 中比较本地文件与远程版本的差异
只要运行下面这条命令,就能拿到与远程版本的 diff
$ git diff origin/master -- [local-path]
本地与远程的 branch
使用 Git 时,了解本地 branch 和远程 branch 的区别很重要。本地 branch 只存在于你的电脑上,不会与其他开发者或远程 repository 共享。远程 branch 则存在于远程 repository 上,其他开发者可以访问,也可以从远程 repository 拉取。
本地 branch 用于个人开发、测试和实验,远程 branch 则用于协作、共享和部署。创建本地 branch 之后,你可以独立开发而不影响远程 branch。等你准备好把改动分享给他人时,可以把本地 branch push 到远程 repository,创建新的远程 branch 或更新已有的 branch。
抓取最新的变更
在比较本地和远程 branch 之前,你需要先从远程 repository 拉取最新的改动。这样才能保证你的本地 repository 与远程 repository 的最新改动保持同步。要拉取最新改动,请使用 git fetch 命令。这条命令会把远程 repository 的最新改动同步到你的本地 repository,但不会执行 merge。
用 Git Diff 比较文件
Git Diff 是比较本地和远程 branch 之间文件差异的好工具。要用 Git Diff 比较文件,请使用 git diff 命令,后面跟上你要比较的 branch 名称。例如,要比较本地 branch main 和远程 branch origin/main 的文件,就用 git diff main origin/main。
Git Diff 会显示两个 branch 之间的差异,标出远程 branch 相对于本地 branch 的改动。你也可以加上 --stat 选项来显示精简版的差异,列出新增、删除和修改的行数。
比较本地与远程的最佳实践
比较本地和远程 branch 时,遵循一些最佳实践才能又快又准地拿到结果。下面是几条值得记住的做法:
- 比较本地和远程 branch 之前,一定要先从远程 repository 拉取最新的改动。
- 用 Git Diff 比较本地和远程 branch 之间的文件。
- 用 --stat 选项显示精简版的差异。
- 用 git log 命令比较本地和远程 branch 的 commit 历史。
- 用 git status 命令查看本地 branch 和远程 branch 的状态。
高级比较技巧
除了 Git Diff 和 Git Log 之外,还有一些进阶技巧可以用来比较本地和远程 branch。下面列举几个:
- 用 git difftool 借助图形化的 difftool 比较本地和远程 branch 之间的文件。
- 用 git diff --name-only 列出本地和远程 branch 之间有改动的文件。
- 用 git diff --word-diff 按单词显示差异。
- 用 git diff --ignore-space-change 忽略空白字符的改动。
现在你手上有更多工具可以用来比较本地和远程 branch 了。