当前位置:  开发笔记 > 编程语言 > 正文

Git拉后细节改变

如何解决《Git拉后细节改变》经验,为你挑选了3个好方法。



1> Cascabel..:

假设你正在掌握.你可以参考以前的位置mastermaster@{1}(或者甚至master@{10.minutes.ago},看到的指定修订部分的git-REV-解析手册页),这样就可以做这样的事情

查看所有更改: git diff master@{1} master

查看给定文件的更改: git diff master@{1} master

查看给定目录中的所有更改: git diff master@{1} master

再次查看更改摘要: git diff --stat master@{1} master

关于"我怎么知道自己是否掌握"的问题......好吧,使用分支机构是Git工作流程的重要组成部分.您应该始终了解您所在的分支 - 如果您进行了更改,则需要将它们拉到正确的分支!您可以使用该命令查看所有分支的列表,当前已检出的分支带有星号git branch.当前分支名称也与输出一起打印git status.我强烈建议略读命令的手册页 - 这是慢慢学习一些知识的好方法.

而你的最后一个问题HEAD是:当前签出的分支的名称.您可以确属自用的HEAD,并HEAD@{1}在这方面为好,但它更健壮一点用树枝,因为如果你去看看另一个分支.HEAD现在是第二个分支,HEAD@{1}现在master- 不是你想要的!

为了节省不得不提出这样的很多小问题,你应该看一下Git教程.网上有一百万,例如:

在临Git的书

Git Magic

以及谷歌"Git教程"的450万次点击


这比我的解决方案更好:)
@ unrealsoul007然后你的情况就不同了.master~1是当前指向的一个master的父提交; 你将会看到那个提交的差异.master @ {1}是前面提交的master指向的; 例如,如果您刚刚拉动,那么在拉动之前这就是主人的位置,如此处所述.如果它没有这样做,那么你可能已经完成了其他事情,因为你拉了.试试`git reflog master`来了解一下.
Git能做到吗?!
我知道这很旧,但是...应该是相反的方式:`git diff master @ {1} master`,否则更改显示为“ backwards”,即插入变为删除等。
`git diff master @ {1} master`对我不起作用而`git diff master~1 master`为我做了这个工作.

2> Christian Ou..:

假设你像这样做一个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,git pull不再输出已更改的文件列表.要做到这一点,你需要做`git pull --stat'
你可以使用"`git diff --stat a407564..9f52bed`"或只是摘要"`git diff --summary a407564..9f52bed`"获得摘要.

3> kaiser..:

1.我如何知道自己是否想要掌握?我所做的只是"git pull".

命令本身的工作原理如下:

git pull [options] [ […]]

默认情况下是指当前分支.您可以使用检查您的分支机构

git branch -a

这将列出您的本地和远程分支,例如如此(--- 在本地和远程之间添加分隔符以使其更清晰)

*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输出之间以使其更清晰):

 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/

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有