首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让我的git集成万花筒显示所有即将提交的文件?

如何让我的git集成万花筒显示所有即将提交的文件?
EN

Stack Overflow用户
提问于 2012-08-02 01:06:26
回答 2查看 5.6K关注 0票数 6

我使用命令行git和Kaleidoscope来执行代码审查。当我将一个分支合并到另一个分支中并键入

代码语言:javascript
复制
git difftool

万花筒只显示“没有为提交暂存”的更改,不显示“未合并的路径”或“更改为提交”。

命令行显示其余的内容。

知道为什么吗?

这是我的~/.gitconfig

代码语言:javascript
复制
[user]
        name = Dirty Henry
        email = dirty@henry.com
[core]
        excludesfile = /Users/dirty/.gitignore_global
        editor = mate
[difftool "Kaleidoscope"]
        cmd = ksdiff-wrapper git \"$LOCAL\" \"$REMOTE\"
[mergetool "sourcetree"]
        cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
        trustExitCode = true
[diff]
        tool = Kaleidoscope
[credential]
        helper = osxkeychain
[difftool]
        prompt = false
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-02 03:00:46

简而言之:您希望在命令行中键入的是git difftool HEAD,而不是git difftool

长答案:这是正常的git行为,如果你没有意识到发生了什么,这是一种令人沮丧的行为。我不确定为什么命令行diff能像您期望的那样工作,但git diffgit difftool的性能应该与git手册页相似:

git diff --选项...此表单用于查看您相对于索引所做的更改(下一次提交的暂存区)。换句话说,差异就是你可以告诉git进一步添加到索引中的东西,但你仍然没有。

因此,git diffgit difftool应该只向您显示未暂存的更改。

如果您希望查看暂存的更改,则应改用git diff --cachedgit difftool --cached

git diff --选项--缓存...此表单用于查看您为下一次提交所做的更改。通常,您希望与最新的提交进行比较,因此如果您不提供,它将缺省为HEAD。如果HEAD不存在(例如,未生成的分支)且未给出,则会显示所有阶段性更改。--staged是--cached的同义词。

最后,如果您希望看到分阶段和未分阶段的更改,可以使用第三种形式,即git diff HEADgit difftool HEAD

git diff --options --此表单用于查看工作树中相对于命名的更改。您可以使用HEAD将其与最近的提交进行比较,或者使用分支名称与不同分支的tip进行比较。

票数 15
EN

Stack Overflow用户

发布于 2013-04-25 01:34:14

代码语言:javascript
复制
git difftool --staged

将会给你一个确切的答案。

本例中的stagedcached的同义词,不过我发现staged更容易记住。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11764148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档