linux - 如何查看文件的 git diff?

标签 linux git github

我将一个 git 项目克隆到我桌面上的一个文件夹中。我想查看某个文件在其整个生命周期中所做的更改。我试过了

git log -- <filename>

命令,但这并没有产生任何输出。我猜克隆一个项目不一定也克隆历史?我可以继续在 github 上查看某个版本中对文件所做的更改(但这也被其他文件中所做的更改所污染)。如果有人能给我指出一个大方向,那就太好了。

最佳答案

克隆存储库会将整个历史一直复制到第一次提交。

冒着被来自不同背景的大量细节压垮自己的风险到达那里的一种方法是

git log --all -- filename

要查看每次提交所做的更改(或补丁或增量),运行

git log --all --patch -- filename

查看补丁时,我通常不希望看到纯空白更改带来的困惑,所以我运行

git log --all --patch --ignore-all-space -- filename

为了节省一些输入,上面的命令等同于

git log --all -p -w -- filename

由于 --all,这可能显示的内容比您关心的要多得多,并且会让您困惑哪些更改属于哪个分支。要缩小范围,您可以查看特定分支上的更改

git log -p -w my-branch -- filename

或者可能是一个提交范围,如

git log -p -w origin/master..master -- filename

您不必切换分支,因为 git log 可以访问整个存储库。

关于linux - 如何查看文件的 git diff?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57641389/

相关文章:

c - 如果数组大小只能是一个常量值,那么 char d_name[...] 是什么意思?

git - 当在同一个提交上推送新标签时,jenkins 不会触发构建

java - 如何在您的网站上实现 Git/GitLab 以使人们能够编写代码?

json - 如何将 Github secret 传递到 JSON 文件

python - 选择适当的 .gitignore,这样它就不会自行上传。

angularjs - 如何在centos上安装MEAN堆栈

VirtualProtectEx 的 Linux 等效项?

git - 验证终端中文件是否存在

Git pull - 使用 -u 选项的默认远程和分支 - 适用于推送但不适用于 pull

linux - 如何在 shell 脚本中使用 at 命令?