-1

我的基本git diff款对我没有多大作用。在这里,我将我的主分支与登台服务器的主分支进行比较:

(~/hbb.vm) debian $ git diff ..stage/master --name-only
sites/all/libraries/attachment_email/attachment_email.php
sites/all/modules/redirect/redirect.module
sites/all/modules/redirect/redirect.test
sites/all/themes/HBB/css/elements.css
sites/all/themes/HBB/templates/node--enterprise_blog.tpl.php

我想查看如下信息:

  • 此文件是否已添加/修改/删除?
  • 在哪个分支上添加/修改/删除了文件?

编辑:我对看到所有变化不感兴趣——我想要介于两者之间的东西。丰富的总结。

4

2 回答 2

1

他们有哪些stage/master我在本地没有的提交:

git log ...stage/master --graph --decorate --cherry --name-status

我在本地有哪些未推送的提交stage/master

git log stage/master... --graph --decorate --cherry --name-status
  • --decorate-- 在提交旁边显示标签和分支名称
  • --cherry--在合并的提交上显示“ =”而不是“ ”。*

就提交而言,两者之间的对称差异是什么:

git log ...stage/master --cherry-pick --left-right --name-status
  • --left-right-- 在提交上显示 " <" 和 " >" 以指示提交是分别来自左侧...还是右侧。

另请参阅:git-log

于 2013-08-02T01:15:19.213 回答
1

您可以使用以下命令查看当前分支和 之间差异的摘要stage/master

$ git diff --name-status ..stage/master
M       practice.txt
A       shazbot.txt
D       foobar.txt

whereM代表“Modified”,A代表“Added”,D代表“Deleted”。

如果您想查看这些文件在哪些提交中被修改、添加或删除,您可以使用该log命令,使用相同的--name-status参数:

$ git log --oneline --name-status ..stage/master
31b9628 Add shazbot.txt
A       shazbot.txt
e56da37 Merge branch 'develop'
790f3bf Revert "Revert "Merge branch 'develop'""
M       practice.txt
d9493e0 Merge branch 'master' into develop
8832960 Revert "Merge branch 'develop'"
M       practice.txt
2b82909 Merge branch 'develop'
2d41fb6 Fix bug 01
M       practice.txt
526bf16 Add feature 02
M       practice.txt
ba8700c Add feature 01
M       practice.txt
bb8ced2 Add practice.txt
A       practice.txt

在 Git 中询问哪些提交引入了更改比询问哪些分支更可靠,因为在 Git 中,分支只是可以从提交中应用和删除的廉价标签,并且可能不再存在于您的任何 repos/remotes 中重新使用。

于 2013-08-02T01:34:03.547 回答