当我运行git pull
时,我在终端上看到了这个:
Fast-forward
src/components/Button/index.tsx | 2 +-
我如何在不必访问浏览器的情况下查看更改?有可能知道编辑器中更改了什么吗(我使用的是vscode(?
您可以使用以下命令找到差异:
git diff HEAD^1
关于上述git
命令的更多信息可在此答案中获得,或者git diff
的手册页是另一个选项。
有可能知道编辑器中发生了什么变化吗(我使用的是vscode(?
为了完成答案,VSCode中有一个名为GitLens的扩展,它逐行提供有关最新提交和更改的深入信息。以上扩展链接提供了更多详细信息。
您可以查看如何使用reflog:更新头部提交
$ git reflog
46f6744 (HEAD -> master, origin/master) HEAD@{0}: pull (finish): returning to refs/heads/master
46f6744 (HEAD -> master, origin/master) HEAD@{1}: pull (start): checkout 46f6744b780c1df8b0212fd297679719443874a3
e5eee0e HEAD@{2}: commit: some message
ac32fe4 HEAD@{3}: commit: some other message
...
如您所见:给定上述reflog,git pull
的效果是将HEAD
从提交e5eee0e
移动到46f6744
。
然后,您可以查看这两个提交之间的差异:
git diff e5eee0e 46f6744
# if you are interested in this specific file :
git diff e5eee0e 46f6744 -- src/components/Button/index.tsx
reflog中提到的HEAD@{xx}
也是指定提交的有效方法:
git diff HEAD@{2} HEAD
这些命令可以从任何终端运行。
请注意,在您的情况下,HEAD@{2}
可能不是正确的参考:
我的示例中有pull (start): ...
和pull (finish): ...
条目,因为我在机器上配置了pull.rebase = true
;如果pull不是快进的,reflog会注册一系列正在重播的提交;先前的";状态可能是HEAD@{5}
或HEAD@{11}
或。。。
检查您的reflog以了解在git pull
操作之前哪个是活动提交。
另一个感兴趣的地方可以是远程分支的reflog:
它将显示在运行git pull
时如何更新origin/master
的本地视图
$ git reflog origin/master
46f6744 (HEAD -> master, origin/master) refs/remotes/origin/master@{0}: pull: fast-forward
e5eee0e refs/remotes/origin/master@{1}: pull: fast-forward
在Visual Studio代码中,有一些扩展将在树视图中显示更改的特定文件,并允许您在"diff视图";它在左侧显示原始文件,在右侧显示更新后的文件,并用绿色/红色突出显示更改的内容。
具有此功能的一些顶级扩展:
- GitLens
- 在侧栏中打开一个包含提交和文件信息的树视图
- 添加内联";编码透镜";关于最近对特定行的更改的评论
- Git图
- 打开一个单独的窗口,显示带有所有分支中所有提交的repo的可视化映射
不过,我的一个替身在编辑器/IDE之外。如果你有Windows,Git扩展是一个不错的选择。它是一个开源的、完整的Git GUI,在一个简单的点击界面和分支、提交和文件的可视化布局中提供了Git 99%的可用功能。