正在从我的Git diff命令中查找更多信息
我的基本正在从我的Git diff命令中查找更多信息,git,diff,Git,Diff,我的基本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
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
我希望看到以下信息:
- 此文件是否已添加/修改/删除
- 在哪个分支上添加/修改/删除了文件
编辑:我对看到所有的变化不感兴趣——我想要介于两者之间的东西。丰富的摘要。他们在
stage/master
中有哪些本地没有的提交:
git log ...stage/master --graph --decorate --cherry --name-status
我在本地有哪些提交没有推送到stage/master
:
git log stage/master... --graph --decorate --cherry --name-status
$ git diff --name-status ..stage/master
M practice.txt
A shazbot.txt
D foobar.txt
--在提交旁边显示标记和分支名称--装饰
--在合并的提交上显示“--cherry
”而不是“=
”*
git log ...stage/master --cherry-pick --left-right --name-status
--在提交上显示“--left-right
”,以分别指示提交是从
的左侧还是从右侧..
另请参阅:您可以使用以下命令查看当前分支与
stage/master
之间差异的摘要:
git log stage/master... --graph --decorate --cherry --name-status
$ git diff --name-status ..stage/master
M practice.txt
A shazbot.txt
D foobar.txt
其中,M
表示“已修改”;A
表示“已添加”;D
表示“已删除”
如果要查看修改、添加或删除这些文件的提交,可以使用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中,分支只是可以应用并从提交中删除的廉价标签,并且可能不再存在于您正在使用的任何repo/remote中。您可以使用
--name status
而不是--name only
来获取每个文件的状态(即添加/修改/删除)。或者删除它们以查看实际的更改在Git中,查看发生更改的分支不是正确的问题,因为分支只是便宜的标签,可以从提交中应用和删除,并且可能不再存在于您正在使用的任何repo/remote中。一个更好的问题是“在stage/master
中哪个提交引入了此更改?”