拉动Git后,其输出将给出变化量的摘要。
如何查看每个或某些文件的详细更改?
好的,这是我对Jefromi的问题:
我怎么知道我是否正在掌握?我所做的就是“ git pull”。
master指向什么,master和HEAD(Git的两个默认头)之间有什么区别?
如何查看特定文件中的详细更改?
如何
git pull
再次查看摘要输出中的更改?git diff
和之间有什么区别git whatchanged
?
拉动Git后,其输出将给出变化量的摘要。
如何查看每个或某些文件的详细更改?
好的,这是我对Jefromi的问题:
我怎么知道我是否正在掌握?我所做的就是“ git pull”。
master指向什么,master和HEAD(Git的两个默认头)之间有什么区别?
如何查看特定文件中的详细更改?
如何git pull
再次查看摘要输出中的更改?
git diff
和之间有什么区别git whatchanged
?
Answers:
假设您要掌握。您可以参考master
by 的前一个位置master@{1}
(或什至master@{10.minutes.ago}
;请参阅git-rev-parse手册页的指定修订版部分),以便您可以执行以下操作
查看所有更改: git diff master@{1} master
查看对给定文件的更改: git diff master@{1} master <file>
查看给定目录内的所有更改: git diff master@{1} master <dir>
再次查看更改摘要: git diff --stat master@{1} master
至于您的“我如何知道自己是否掌握”的问题……那么,使用分支是Git工作流程的重要组成部分。您应该始终知道您在哪个分支上-如果您撤消更改,则想将它们拖到正确的分支!您可以使用命令查看所有分支的列表,其中当前已检出的分支带有星号git branch
。当前分支名称也会与输出一起输出git status
。我强烈建议略读要使用的命令的手册页-这是慢慢学习一些知识的好方法。
最后一个问题:HEAD
是当前已签出分支的名称。在这种情况下,您确实可以使用HEAD
和HEAD@{1}
,但是使用分支会更健壮,因为如果您去检查另一个分支。HEAD
现在是第二个分支,HEAD@{1}
现在master
不是您想要的!
为了省去问很多类似这样的小问题,您可能应该看看Git教程。例如,网络上有一百万:
git diff master@{1} master
,否则显示的变化“倒退”,即插入成为缺失等
git diff master@{1} master
没有为我工作,而是git diff master~1 master
为我工作。
git reflog master
了解什么。
fatal: ambiguous argument 'firstDesign@': unknown revision or path not in the working tree.
我一直收到此错误。尽管git reflog firstDesign具有此输出。
假设您像这样进行git pull:
$ git pull
remote: Counting objects: 10, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 6 (delta 4), reused 0 (delta 0)
Unpacking objects: 100% (6/6), done.
From git@dev.example.com:reponame
a407564..9f52bed branchname -> origin/branchname
Updating a407564..9f52bed
Fast forward
.../folder/filename | 209 ++++++++-----
.../folder2/filename2 | 120 +++++++++++---------
2 files changed, 210 insertions(+), 119 deletions(-)
您可以通过使用修订号查看更改的差异:
$ git diff a407564..9f52bed
git diff --stat a407564..9f52bed
”或仅用于摘要“ git diff --summary a407564..9f52bed
” 来获得摘要
1.我怎么知道我是否正在掌握?我所做的就是“ git pull”。
该命令本身如下所示:
git pull [options] [<repository> [<refspec>…]]
并且默认情况下是指当前分支。您可以使用来检查分支机构
git branch -a
这将列出您的本地和远程分支,例如这样(---
在本地和远程之间添加了as分隔符,以使其更加清晰)
*master
foo
bar
baz
---
origin/HEAD -> origin/master
origin/deploy
origin/foo
origin/master
origin/bar
remote2/foo
remote2/baz
当您查看一个远程仓库时,将看到您所指的是:
git remote show origin
将列出如下内容:
* remote origin
Fetch URL: ssh://git@git.example.com:12345/username/somerepo.git
Push URL: ssh://git@git.example.com:12345/username/somerepo.git
HEAD branch: master
Remote branches:
foo tracked
master tracked
Local refs configured for 'git push':
foo pushes to foo (up to date)
master pushes to master (fast-forwardable)
因此,很容易确定要从哪里拉出并推到哪里。
3.如何查看特定文件中的详细信息更改?
4.如何查看最后一次git pull再次产生的摘要输出变化?
最简单,最优雅的方法(imo)是:
git diff --stat master@{1}..master --dirstat=cumulative,files
这将为您提供有关上一次拉动和当前工作状态之间的更改的两段信息。输出示例(我---
在--stat
和--dirstat
输出之间添加了as分隔符,以使其更加清晰):
mu-plugins/media_att_count.php | 0
mu-plugins/phpinfo.php | 0
mu-plugins/template_debug.php | 0
themes/dev/archive.php | 0
themes/dev/category.php | 42 ++++++++++++++++++
.../page_templates/foo_template.php | 0
themes/dev/style.css | 0
themes/dev/tag.php | 44 +++++++++++++++++++
themes/dev/taxonomy-post_format.php | 41 +++++++++++++++++
themes/dev/template_parts/bar_template.php | 0
themes/someproject/template_wrappers/loop_foo.php | 51 ++++++++++++++++++++++
---
11 files changed, 178 insertions(+)
71.3% themes/dev/
28.6% themes/someproject/template_wrappers/
100.0% themes/
27.2% mu-plugins/
9.0% themes/dev/page_templates/
9.0% themes/dev/template_parts/
63.6% themes/dev/
9.0% themes/someproject/template_wrappers/
72.7% themes/
git diff
清楚地输出一个diff,而git whatchanged
清楚地输出一个提交信息列表,每个列表都包含更改文件的列表。