我想在远程仓库之间比较我的本地仓库(在git clone之后)。 我用命令:
git add newfile
git commit -m "my change"
git diff HEAD origin --name-only
我想仅比较更改文件的上下文。 没有重命名。
我有两个问题: 1.如果我更改文件名,它会告诉我。 2.如果我在远程仓库中添加/更改文件,它将显示给我。我想看看相对于我当地的回购的变化。
我该如何解决?
答案 0 :(得分:0)
如果您克隆了一个分支(例如称之为“mybranch”),那么当您克隆该回购时,您将拥有一个名为“origin / mybranch”的分支。这实际上是遥控器上分支的状态。
然后你在本地检查分支,你将有一个名为“mybranch”的分支 - 你做了修改,然后你可以在两个分支之间做差异:
git diff origin/mybranch mybranch
或者您可以像在示例中一样查看HEAD。当您克隆回购时,您将在HEAD。当你提交某些内容时,你仍然会在HEAD中,但之前的提交可以作为HEAD~1进行访问。所以你git diff命令可以是:
git diff HEAD~1 HEAD
或者只是查看日志git log
或图形视图git log --oneline --graph --all --decorate
并选择任意两个commit-hash / tags / branches进行比较。
<强>更新强>
我可能误解了这个问题。根据您的评论,我认为您正在尝试为内容已更改的文件执行差异操作。您可以使用--diff-filter选项:
git diff --diff-filter=M HEAD~1 HEAD
其中“M”用于修改。如果需要,您也可以使用“R”进行重命名(并且您可以组合许多选项,例如git diff --diff-filter=MR HEAD~1 HEAD
用于修改和重命名的文件。)