问题标签 [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.
git - git-diff:仅显示提交的更改
我想查看已添加到提交 ( git add something
) 的文件的差异。我可以做这个:
有没有更短的方法?
git - 想要从“git diff”中排除文件
我正在尝试db/irrelevant.php
从 Git 差异中排除文件 ()。我尝试将一个文件放在使用该行db
调用的子目录中,
并且我还尝试创建一个名为 contains 的文件。.gitattributes
irrelevant.php -diff
.git/info/attributes
db/irrelevant.php
在所有情况下,该db/irrelevant.php
文件都作为 Git 二进制补丁包含在 diff 中。我想要的是 diff 命令忽略对该文件的更改。我究竟做错了什么?
git-diff - Git 何时将文件显示为已修改,而实际上不是?
的输出git diff
表明我的一个文件的完整内容已被删除,然后又添加回来。为什么是这样?
git - 让 git diff --stat 显示完整的文件路径
在执行git diff --stat
某些文件时,列出了来自存储库库的完整路径,但有些文件列出为:
那就是路径开始,...
并且只显示短路径。
我想git diff
列出所有文件的完整文件路径,以便脚本轻松处理。有什么方法可以让我git diff
始终显示完整路径
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 个不同的开发人员修改......)
python - 用于从文件中选择单个 Python 函数的 Bash 脚本
对于git 别名问题,我希望能够按名称从文件中选择单个 Python 函数。例如:
在算法方面,以下将足够接近:
- 当您找到匹配的行时开始过滤
/^(\s*)def $1[^a-zA-Z0-9]/
- 继续匹配,直到找到不是
^\s*#
或的行^/\1\s]
(即,可能缩进的注释,或者比前一个长的缩进)
(我真的不在乎以下函数之前的装饰器是否被拾取。结果是供人类阅读的。)
我试图用 Awk(我几乎不知道)来做到这一点,但这比我想象的要难一些。对于初学者,我需要一种将缩进长度存储在原始def
.
git - 为要添加到现有 git 存储库的未修订代码找到合适的父提交
我需要将一些以前不受版本控制的代码包含到已经包含一些提交的 git 存储库中。
我想要自动化的是找到合适的“父”提交,新代码将成为子提交。
经过一些测试,我认为git diff-tree
效果最好(因为只有一个文件夹包含用于测试“亲子关系”的相关代码)。
我的方法是这样的:
- 循环遍历所有现有提交和提交的节点 sha1 和相关子树的 sha1
- 将新文件复制到存储库,将它们添加到索引
- 注意索引中相关子树的 sha1
- 将现有的相关子树与新的候选者进行比较,并使用 git diff-tree of something similar 来计算“相似度”
- 选择最相似的现有子树并使其成为新提交的父级,即检查新父级(或者
checkout --orphan
如果找不到合适的父级),清空工作目录并填充新文件并提交。
缺少的是一种计算相似度的方法!也许有人可以给我一个提示,哪种标志组合会有所帮助......
如果这很重要,代码看起来几乎像 PASCAL。
git - 更智能的 rebase 避免冗余工作?
我在长变基时遇到的一个问题是必须解决冗余冲突。假设我有一个带有一系列提交的分支,它不断修改一个函数,而最终提交完全删除了该函数。
当我这样做时rebase master
,Git 会天真地依次应用每个提交。这意味着我需要用 master 的提示来解决这些提交中的每一个——即使最终这些工作都被浪费了。
有什么好的方法来处理这种情况?也许我应该为整个分支生成一个补丁,然后将其应用于 master?如果是这样,有什么办法可以保留一些历史吗?想法、建议等。
git - 如何查看本地分支和远程分支之间指定文件的差异?
如何查看指定文件中本地分支和远程分支之间的差异?
我知道这个命令:
但它给出了两个分支之间所有文件的差异,而我只关心一个指定文件的更改。
git - 将一个暂存文件与一个在存储中的文件进行比较
是否有用于比较来自 git stash 的文件的 --staged(又名 --cached)选项?
在这里,我将最近的提交与暂存文件进行比较(我使用显式的 @{} 语法,但我知道可以推断出 @{0}):
在这里,我将隐藏的文件与磁盘上的文件进行比较:
我如何将当前上演的内容与隐藏的内容进行比较?这不起作用: