我的基本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
我希望看到以下信息:
答案 0 :(得分: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
答案 1 :(得分:1)
您可以使用以下命令查看当前分支与stage/master
之间差异的摘要:
$ 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中,分支只是可以在提交中应用和删除的廉价标签,并且可能不再存在于您正在使用的任何repos /遥控器中。