相关疑难解决方法(0)

如何比较本地git分支与其远程分支?

如何diff在本地分支和远程分支之间查看?

git

959
推荐指数
13
解决办法
68万
查看次数

Git log只能获取特定分支的提交

我想列出仅属于特定分支的所有提交.

通过以下内容,它列出了分支中的所有提交,但也列出了父(主)的提交

git log mybranch
Run Code Online (Sandbox Code Playgroud)

我找到的另一个选项是排除master可以访问的提交并给我我想要的东西,但我想避免需要知道其他分支名称.

git log mybranch --not master
Run Code Online (Sandbox Code Playgroud)

我试图使用git for-each-ref,但它也列出了mybranch所以实际上它排除了所有:

git log mybranch --not $(git for-each-ref --format '^%(refname:short)' refs/heads/)
Run Code Online (Sandbox Code Playgroud)

更新:

我正在测试我刚才发现的一个新选项,直到现在看来这可能是我想要的:

git log --walk-reflogs mybranch
Run Code Online (Sandbox Code Playgroud)

更新(2013-02-13T15:08):

--walk-reflogs选项很好,但我检查了reflogs是否到期(默认为90天,gc.reflogExpire).

我想我找到了我想要的答案:

git log mybranch --not $(git for-each-ref --format='%(refname)' refs/heads/ | grep -v "refs/heads/mybranch")
Run Code Online (Sandbox Code Playgroud)

我只是从可用分支列表中删除当前分支,并使用该列表从日志中排除.这样我只能获得mybranch才能达到的提交.

git

194
推荐指数
7
解决办法
14万
查看次数

Git diff提交范围中双点".."和三点"..."之间有什么区别?

以下命令之间有什么区别?:

git diff foo master   # a 
git diff foo..master  # b
git diff foo...master # c
Run Code Online (Sandbox Code Playgroud)

diff手册谈到它:

比较分支机构

$ git diff topic master    <1>
$ git diff topic..master   <2>
$ git diff topic...master  <3>
Run Code Online (Sandbox Code Playgroud)
  1. 主题提示与主分支之间的更改.
  2. 与上述相同.
  3. 自主题分支启动以来主分支上发生的更改.

但对我来说并不完全清楚.

git diff git-diff

175
推荐指数
4
解决办法
2万
查看次数

diff文件的当前工作副本与另一个分支的已提交副本

foo在master分支中有一个repo文件.我切换到酒吧分支并进行了一些更改foo.我现在如何git diff在此副本(尚未提交)和主分支副本之间运行?

git

135
推荐指数
7
解决办法
9万
查看次数

如何比较github中同一分支上的两个不同的提交?

在GitHub上比较同一分支的历史对我来说非常困惑.我经常挣扎:

如果我compare/master在github repo名称之后使用URL,我可以根据下拉菜单中的选项与repo中的其他分支进行比较

https://help.github.com/articles/comparing-commits-across-time/

但是,我通常想比较master上的几个提交.

这怎么容易做到?我能得到一个更明确的例子吗?

git github

27
推荐指数
3
解决办法
1万
查看次数

有没有办法在Git中查看分支上的所有已更改文件?

如果这不是很清楚,但是在Git,我有一种方法可以通过名称查看分支上所有已更改的文件.据我所知,我可以使用git log查看在单个提交中已更改的文件,但我希望看到自创建分支以来已经更改的所有文件,通过多次提交.

有git diff但是这也列出了我想要比较的分支中的已更改文件.我想要一个命令,"显示此分支中所有已更改文件的文件名".

非常感谢

git

23
推荐指数
1
解决办法
2万
查看次数

'git diff':仅显示两个提交中存在的文件的差异

有没有办法用于git diff在两次提交之间获取差异,但只显示两次提交中存在的文件的差异?

我有一个我几周前创建的分支,而且我们的主要代码现在已经差不多了.结果,如果我在当前的HEAD和旧分支的尖端之间做差异,我会得到几十个已更改的文件,但它主要只是噪音.

我真的想看到一个diff,它只显示两个分支中存在的文件.我知道这样做的一种方法是在当前的HEAD之上挑选其他分支的提交,但有没有办法只使用它git diff

git

19
推荐指数
1
解决办法
5013
查看次数

获取任何合并分支的git diff

对于代码中的每个缺陷,我创建单独的分支.当缺陷修复后,我将这个分支合并到master中,所以我的历史如下图所示(我们看到两个分支有修复):

          defect1 fix         defect2 fix
         a---b---c---d           e---f
        /             \         /     \
---o---1---x---y---z---2---o---3---w---4---o--- 
Run Code Online (Sandbox Code Playgroud)

问题是如何在任何时间点(例如,对于过去的任何封闭缺陷)获取fix1(在分支开始(1)和分支结束(2)之间)或fix2(在(3)和(4)之间的差异)之间的差异.

更新:实际的问题是如何计算出的SHA summs adef执行下一个明显的diff命令diff <commit> <commit>

git version-control diff merge branch

9
推荐指数
2
解决办法
3995
查看次数

区分两个分支以显示在一个分支中引入的更改

我知道git diff branch1 branch2.但是,我希望仅在一个分支中看到更改.我可以通过以下方式获得此功能

git checkout branch1
git merge branch2
git reset origin/branch1
git diff
Run Code Online (Sandbox Code Playgroud)

有没有更短的方法来做到这一点?

git diff

5
推荐指数
1
解决办法
669
查看次数

git diff-tree显示删除但git log中没有删除

git diff-tree表示文件已被删除,但是当我运行时git log,它没有显示任何内容.

以机智:

> git diff-tree --stat --summary 1990ca669fe..00de228dcdc -- t/tests.conf
t/tests.conf |    9 ---------
1 files changed, 0 insertions(+), 9 deletions(-)
delete mode 100644 t/tests.conf
Run Code Online (Sandbox Code Playgroud)

当我跑:

> git log 1990ca669fe..00de228dcdc -- t/tests.conf
Run Code Online (Sandbox Code Playgroud)

我没有输出.

任何想法我如何能够追踪为什么git认为这个文件已被删除,因为它也导致合并中的问题我正在尝试?

更新

这也不会产生任何输出:

> git log 1990ca669fe...00de228dcdc -- t/tests.conf
Run Code Online (Sandbox Code Playgroud)

提交可以访问:

 > git rev-list 00de228dcdc | grep 1990ca669fe
  1990ca669fe9ec94d215945388458daba8d94747
Run Code Online (Sandbox Code Playgroud)

git

4
推荐指数
1
解决办法
840
查看次数

如何知道哪些文件在分叉中被更改 - git

假设我创建一个分支,我做了一些提交,如何从 fork 获取文件和提交更改?

git git-fork

1
推荐指数
1
解决办法
1316
查看次数

标签 统计

git ×11

diff ×3

branch ×1

git-diff ×1

git-fork ×1

github ×1

merge ×1

version-control ×1