【问题标题】:how to view changed files on git branch and difference如何查看 git 分支上更改的文件和差异
【发布时间】:2013-07-05 17:15:10
【问题描述】:

我试图这样做并没有表现出任何不同 How to get the changes on a branch in git

我从 master 做了一个分支,从那时起对 master 和我的分支进行了更改(称为性能)。我想要的只是

  1. 自分支“性能”分支后更改/触及的文件列表(所有文件均已提交)
  2. 显示所有更改/触摸的文件的完全差异。

执行 git diff origin/master 时,它会列出两个分支上的所有更改 :(.

自从 git diff HEAD..performance 什么也没显示(而且 ... 也什么也没显示)之后,命令是什么?此外,以与 .. 和 with ... 相同的方式使用 log 也不会显示任何内容。

如果我执行 git log,我确实会看到我在性能分支上所做的提交以及我对性能的评论。

谢谢, 院长

【问题讨论】:

  • 你能试试这个,看看它是不是你想要的? git diff hash1 hash2
  • 我不知道要使用哪些哈希,因为我只知道最后一次提交是在这个分支上,但我不确定其他提交以及它最终从主分支分叉的位置。

标签: git


【解决方案1】:

首先,找到分支点。你可以使用merge-base 命令来做到这一点:

$ git merge-base performance master
cafebabe01234567...

注意:如果您不记得merge-base 命令,您可以随时使用gitx/gitk/gitg/等。直观地找到分支点。

然后,你可以做一个从分支点到性能分支尖端的 diff:

$ git diff cafebabe01234567... performance

或者,在一行中,

$ git diff $(git merge-base performance master) performance

请记住,git diff 带有选项,如果您想更改其显示差异的方式。请参阅man page

【讨论】:

  • 干杯,我下次就知道了!
  • 好吧,它肯定给出了错误的分叉版本,因为日期早在 5 月,而我昨天某个时候刚刚创建了这个分支。为什么它会从 5 月开始给我一些关于一个非常新的分支的信息?
  • 哦,我从 git merge-base performance master 中获取了哈希值,然后做了一个 git 日志并搜索了哈希值,它早在 5 月,这绝对是错误的。
  • 哦,废话。这真的把事情搞砸了。我在性能分支上运行了那个命令,它给了我那个哈希,但是当我做 git checkout master 回到主控时,它说我落后了 238 次提交......几个小时前我没有这样做在主分支上来回切换....我该如何解决这个问题?我以为你给我的命令没有修改任何东西,但它似乎做了一些我不想对我的存储库做的事情。我的性能分支也是本地的,所以我不能只是吹走和克隆 :( :(
  • 啊废话,做了一个 git pull,回到性能分支并运行相同的合并基础命令,现在它给出了不同的哈希......这只会让事情变得更糟
猜你喜欢
  • 2012-02-03
  • 2012-12-07
  • 1970-01-01
  • 2018-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多