问题标签 [git-diff]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
9245 浏览

git - git-diff:仅显示提交的更改

我想查看已添加到提交 ( git add something) 的文件的差异。我可以做这个:

有没有更短的方法?

0 投票
14 回答
112806 浏览

git - 想要从“git diff”中排除文件

我正在尝试db/irrelevant.php从 Git 差异中排除文件 ()。我尝试将一个文件放在使用该行db调用的子目录中, 并且我还尝试创建一个名为 contains 的文件。.gitattributesirrelevant.php -diff.git/info/attributesdb/irrelevant.php

在所有情况下,该db/irrelevant.php文件都作为 Git 二进制补丁包含在 diff 中。我想要的是 diff 命令忽略对该文件的更改。我究竟做错了什么?

0 投票
2 回答
386 浏览

git-diff - Git 何时将文件显示为已修改,而实际上不是?

的输出git diff表明我的一个文件的完整内容已被删除,然后又添加回来。为什么是这样?

0 投票
8 回答
38047 浏览

git - 让 git diff --stat 显示完整的文件路径

在执行git diff --stat某些文件时,列出了来自存储库库的完整路径,但有些文件列出为:

那就是路径开始,...并且只显示短路径。

我想git diff列出所有文件的完整文件路径,以便脚本轻松处理。有什么方法可以让我git diff始终显示完整路径

0 投票
2 回答
3276 浏览

git - 将 Git Diff 限制为一个或多个函数?

*.py diff=python进去了.git/info/attributes。所以 Git 知道函数边界在哪里。git diff -W 甚至可以确保显示整个函数。

但是有没有办法将 git diff 的输出限制为一个特定的函数(或多个)?

(失败了,我想这是 awk ......)

编辑这也对git log和有用git rev-list:不要向我显示修改views.py的每个提交,向我显示修改其中某个函数的提交。(是的,在理想情况下,views.py 不会是一个 2000 行的庞然大物,经常被 8 个不同的开发人员修改......)

0 投票
2 回答
558 浏览

python - 用于从文件中选择单个 Python 函数的 Bash 脚本

对于git 别名问题,我希望能够按名称从文件中选择单个 Python 函数。例如:

在算法方面,以下将足够接近:

  1. 当您找到匹配的行时开始过滤/^(\s*)def $1[^a-zA-Z0-9]/
  2. 继续匹配,直到找到不是 ^\s*#或的行^/\1\s](即,可能缩进的注释,或者比前一个长的缩进)

(我真的不在乎以下函数之前的装饰器是否被拾取。结果是供人类阅读的。)

我试图用 Awk(我几乎不知道)来做到这一点,但这比我想象的要难一些。对于初学者,我需要一种将缩进长度存储在原始def.

0 投票
1 回答
57 浏览

git - 为要添加到现有 git 存储库的未修订代码找到合适的父提交

我需要将一些以前不受版本控制的代码包含到已经包含一些提交的 git 存储库中。

我想要自动化的是找到合适的“父”提交,新代码将成为子提交。

经过一些测试,我认为git diff-tree效果最好(因为只有一个文件夹包含用于测试“亲子关系”的相关代码)。

我的方法是这样的:

  1. 循环遍历所有现有提交和提交的节点 sha1 和相关子树的 sha1
  2. 将新文件复制到存储库,将它们添加到索引
  3. 注意索引中相关子树的 sha1
  4. 将现有的相关子树与新的候选者进行比较,并使用 git diff-tree of something similar 来计算“相似度”
  5. 选择最相似的现有子树并使其成为新提交的父级,即检查新父级(或者checkout --orphan如果找不到合适的父级),清空工作目录并填充新文件并提交。

缺少的是一种计算相似度的方法!也许有人可以给我一个提示,哪种标志组合会有所帮助......

如果这很重要,代码看起来几乎像 PASCAL。

0 投票
4 回答
6330 浏览

git - 更智能的 rebase 避免冗余工作?

我在长变基时遇到的一个问题是必须解决冗余冲突。假设我有一个带有一系列提交的分支,它不断修改一个函数,而最终提交完全删除了该函数。

当我这样做时rebase master,Git 会天真地依次应用每个提交。这意味着我需要用 master 的提示来解决这些提交中的每一个——即使最终这些工作都被浪费了。

有什么好的方法来处理这种情况?也许我应该为整个分支生成一个补丁,然后将其应用于 master?如果是这样,有什么办法可以保留一些历史吗?想法、建议等。

0 投票
3 回答
7839 浏览

git - 如何查看本地分支和远程分支之间指定文件的差异?

如何查看指定文件中本地分支和远程分支之间的差异?

我知道这个命令:

但它给出了两个分支之间所有文件的差异,而我只关心一个指定文件的更改。

0 投票
2 回答
607 浏览

git - 将一个暂存文件与一个在存储中的文件进行比较

是否有用于比较来自 git stash 的文件的 --staged(又名 --cached)选项?

在这里,我将最近的提交与暂存文件进行比较(我使用显式的 @{} 语法,但我知道可以推断出 @{0}):

在这里,我将隐藏的文件与磁盘上的文件进行比较:

我如何将当前上演的内容与隐藏的内容进行比较?这不起作用: