标签: git-diff

git可以用stash做一个工作副本的差异

如何将我当前的工作副本与存储区分开来?

我的用例:我的工作副本已包含我的更改的子集stash@{0},但我不想应用所有更改stash@{0}.我想做一个差异来帮助确定stash@{0}我的工作副本中仍然缺少哪些可取的变化.

git git-diff git-stash working-copy

47
推荐指数
5
解决办法
2万
查看次数

TortoiseMerge可以用作Windows Git Bash的difftool吗?

我刚开始和Git一起工作.我想使用TortoiseMerge作为difftool和mergetool.

在我的个人用户目录中的.gtconfig中,我有以下部分.我删除了此问题的用户和颜色部分.

[merge]
    tool = tortoisemerge
[mergetool "tortoisemerge"]
    cmd = \"TortoiseMerge.exe\" -base:\"$BASE\" -mine:\"$LOCAL\" -theirs:\"$REMOTE\" -merged:\"$MERGED\"
[diff]
    tool = tortoisemerge
[difftool "tortoisemerge"]
    cmd = \"TortoiseMerge.exe\" -base:\"$BASE\" -mine:\"$LOCAL\" -theirs:\"$REMOTE\" -merged:\"$MERGED\"
Run Code Online (Sandbox Code Playgroud)

如果我在Git Bash提示符下输入tortoisemerge它会加载.众所周知,它正在路上.但是,如果我输入命令,我会收到以下错误.

Rich:mygittest (master *)
$ git difftool
error: 'tortoisemerge' can only be used to resolve merges
merge tool candidates: kompare emerge vimdiff
No known merge resolution program available.
external diff died, stopping at readme.txt.
Rich:mygittest (master *)
$ 
Run Code Online (Sandbox Code Playgroud)

我不理解这项工作是什么?Tortoisemerge与TortoiseSVN一起安装.

git git-diff tortoisegit tortoisegitmerge

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

当它不是时,git diff将整个文件视为已更改

git diff引擎看到整个文件没有改变.例如,采取此提交:https://github.com/etiago/phpvirtualbox/commit/626e09958384f479f94011ac3b8301bd497aec51

在这里,我们看到文件lib/vboxconnector.php有2807个添加和2778个删除.另外,从手动git diff我发现确实,整个文件被删除(标记为减号),并且整个新文件被视为添加.但是,这些文件有很多共同点,Git只是忽略了它们.

我看过diff返回整个文件的相同文件,但似乎并非如此,因为两次提交之间不存在空格更改.

此外,采用文件的两个提交(一个在626e09958384f479f94011ac3b8301bd497aec51和中626e09958384f479f94011ac3b8301bd497aec51^1)并使用Meld对它们进行差异化,我得到了正确的差异分析.

为方便起见,我已将文件的两个提交上传到我的Dropbox:commit_1 commit_2.

git git-diff

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

在Git中,我如何区分我的分支的第一次提交?

我已经对一个本地分支进行了多次提交,但是我不确定将我目前拥有的内容与我的分支的起始状态区分开来的最佳方法.我知道我可以做一些事情,比如git diff HEAD HEAD~6我的分支机构有6次提交,但我希望能有一些与提交数量无关的东西.

编辑:我没有提到这个:我希望我不必挖掘日志来获取我分支的提交的哈希值.例如,如果我有80次提交,这将不是一个有趣的任务.

另外,假设我分支的原始分支已经有了几处变化.

git git-diff

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

标准(迈尔斯),最小,耐心和直方图差异算法产生的不同结果的例子

Git提供了这4种差异算法,但没有任何进一步的信息,它们的区别是什么.

每种算法有哪些优点?是否存在算法执行方式不同的各种情况的比较?

diff git-diff

44
推荐指数
2
解决办法
7812
查看次数

有没有从点或分支起源"git diff"的快速方法?

我已经查看了有关使用git diff和git修订(HEAD,ORIG_HEAD,FETCH_HEAD等)的各种SO答案,我仍然没有找到一种简单的方法来列出自本地分支开始以来所做的更改,或者自上次以来变基.

通过简单的我的意思是,无需查找并粘贴提交SHA也不必指望我想多少提交回头.

git diff origin/master 是接近,但它指的是遥控器,因为我检查了它的新分支.

我希望有类似的东西git diff BASE_HEAD可供选择.

......除非已经有办法做到这一点.有人有答案吗?

git git-diff

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

git:为什么git diff没有显示任何差异?

如果我在我的仓库上运行'git status',它会给出:

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified: myfile
Run Code Online (Sandbox Code Playgroud)

但是,如果我执行'git diff myfile',它就没有显示出任何差异.这是因为我做了一个更改并将其删除,以便恢复原状吗?

我应该运行'git checkout myfile'来清除它吗?

git git-diff git-status

40
推荐指数
2
解决办法
3万
查看次数

如何使用vim-fugitive查看任何提交的git diff?

vim-fugitive并排git diff非常适合查看未分段文件的差异.

我如何使用vim-fugitive来git diff

  • 分阶段的文件?
  • 任何git修订版?

vim vimdiff git-diff vim-fugitive

40
推荐指数
3
解决办法
2万
查看次数

如何使用git-diff显示空格和制表符

我有git-diff的以下输出.

- // sort list based on value    
+ // sort list based on value
Run Code Online (Sandbox Code Playgroud)

如何才能看到线路末端删除的标签/空格的数量?

git git-diff

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

Git:从diff中的行中删除前导加号/减号

我的问题很简单,但我找不到答案.

我想删除每行中的前导加号/减号git diff.在你问我为什么要这样做之前,请允许我概述一下我的理由:

  1. 正好是80个字符的行将被一个字符溢出,这看起来很尴尬
  2. 着色足以让我区分添加/删除
  3. 我更喜欢将终端的窗口宽度保持在80个字符(而不是任意81个字符),以保持与我在终端(外部git)中所做的其他事情保持一致

这样做有一些配置选项吗?如果没有,我怎么能以一种仍允许我翻阅我的差异less风格的方式来做到这一点?

任何见解将不胜感激.

git git-diff

37
推荐指数
4
解决办法
8838
查看次数