问题标签 [git-show]
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 将单个文件检出到不同位置时,如何保留行尾?
我想将 git 存储库中的单个文件检出到不同的位置(工作目录除外),并保持当前工作目录不变。我希望 git 以正确的行结尾签出我的文件。
我在 Windows 上工作,但我在 Linux 上也有同样的问题。
这是我的场景(Win7 64 位):
首先,我确保 git 在提交时将 CRLF 转换为 LF,在结帐时将 LF 转换为 CRLF:
然后我创建一个名为 crlf.txt 并带有 CRLF 行结尾的文件并提交它:
我在 crlf.txt 中更改了一些内容并提交:
现在我想像第一次提交一样获得 crlf.txt:
文件“crlf_like_in_head-1.txt”不包含 CRLF,但包含 LF。我认为 git show 是正确的,因为它显示的文件内容就像它在存储库中一样(core.autocrlf=true 将 CRLF 转换为 LF)。我从文档中知道这一点,我对 core.autocrlf=false 进行了同样的尝试。core.autocrlf=false "crlf_like_in_head-1.txt" 包含 CRLF。我知道我可以轻松地将 LF 转换为 CRLF,但我必须确保结果文件与使用 git 签出的文件相同。
我知道我也可以使用 git checkout 签出单个文件:
但它会覆盖工作目录中 crlf.txt 的当前内容(如果 crlf.txt 处于脏状态),我无法使用 git checkout 将其签出到不同的文件夹。
git - 使 git show 以机器可解析的格式显示信息
我已经阅读了解析 git log 输出,最好是 xml,但这没有帮助。我正在尝试获取有关 Git 标签的以下信息。
- 创建标签的用户
- 与标签创建相关的消息(如果有)
- 标签的名称(我知道这一点,因为我已经通过了),但我希望它们出现在输出中,这样我就可以将整个输出传回给我的调用者
- 该标签上的最新提交 ID
我更喜欢它们作为 CSV 或空格/制表符分隔的值,所以我尝试使用 --format 选项。我正在尝试类似的事情
但这不会产生我想要的。接下来我可以尝试什么?
git - git - 当输出重定向到文件时,在二进制文件上使用 git show 是否安全?
我读到可以从 Git 中的特定修订版中检索单个文件,正如这个 SO 问题中所回答的那样:
如何从 Git 中的特定修订版中检索单个文件?
所以我想知道用二进制文件这样做是否安全。我有一些正在使用的二进制文件,我不想检查它们,我真正想做的是将它们从特定版本中复制出来。我试过这个:
这似乎有效,因为输出中的 database.db 与该提交完全匹配。但我想知道这是允许使用的git show
吗?它是否支持我正在做的事情,结果是否始终正确且不损坏(例如 autocrlf 翻译..我在 Windows msysgit 中)。谢谢!
image - 在 git 中,如何查看图像文件的先前版本?
我知道我可以git-show 文件的以前版本,但我的存储库中有图像!当 I 时git show <revision>:<path-to-image>
,它会在寻呼机中无济于事地打开它们...
似乎git show
没有为此考虑环境变量:我尝试过设置EDITOR=gimp
and PAGER=gimp
,甚至VISUAL=gimp
没有效果。我也找不到man git show
有关更改寻呼机应用程序的任何信息。
作为一种解决方法,我可以git stash save
我当前的更改、git checkout
修订、打开文件、checkout
回到我原来的位置git stash apply
,但这是不应该做的很多努力。
我该如何正确地做到这一点?
git - `git stash show -p stash@{N}` 和 `git show stash@{N}` 的区别?
我认为它们应该基本相同,但是当我尝试时
和
后者显示了一些额外的提交信息,但实际的差异要短得多。(前者显示大约十几个文件,但后者只有一个。)
那么,两者之间究竟有什么区别,为什么它们不同呢?
我也可以依靠git diff stash@{M} stash@{N}
正确的东西吗?
git - git show 用于 TortoiseGit 中的合并
如果我git show XYZ
在控制台中调用合并,我只会看到冲突文件的差异。gitg,我猜还有许多其他图形工具,在选择提交时显示相同的差异。TortoiseGit 正在向每个父母显示差异。
如何git show
在 TortoiseGit 中获得合并的输出?
编辑:默认情况下git
使用--combined
选项 ondiff
和show
。Tortoise-m
默认使用向每个父级显示差异。
git - 如何查看裸存储库中的文件?
我的遥控器中有一个裸存储库。我想查看在编辑器中打开的文件并查看代码。要列出文件,请使用 git ls-files master 或 git ls-tree master。对于查看单个文件,我可以执行 git show 100644 但是如何查看目录中的文件。这是一个例子:
如果我执行 git show 03ec70,它会显示 .gitignore 文件的内容
如果我执行 git show 53a58d,它会列出模板文件夹的内容
但是我怎样才能打开单个文件来查看它们。示例:上述情况下的 base.html
git - 列出在 Git 中更改的文件以及更改信息
简而言之,我想要这个:
git show --name-only <hash>
但我也想知道它是什么类型的更改,例如添加、删除、添加/删除 n 行,最好仍然在每个文件的一行上。
git - 通过提交消息搜索特定的 git commit 并排除分支
我目前正在开发一个程序来过滤存储在命令行数据库中的慢速数据库查询。
我想搜索除指定分支之外的所有分支中的所有提交并返回所有匹配的提交。
我的过滤条件存储在数据库中(为我提供)。
例子:
我在数据库中有以下条目:
我现在对代码中尚未修复的查询感兴趣。所以我需要使用关键字作为搜索过滤器来搜索分支。
如果在提交中找到密钥,请跳过并查找下一个。如果未找到匹配项,则将其打印到标准输出。所有代码都可以正常工作,但我无法找到正确的 git 命令。
我有以下内容:
它应该返回所有分支的提交消息中包含“ABCDEF”的所有提交,除了origin/master。
但是, git 命令不会返回任何不可能的东西,因为我知道这些提交就在那里。
我的 git 命令不正确吗?在此先感谢您的任何指点。
git - git log -p vs. git show vs. git diff
命令git log -p
,git show
和是如何git diff
相关的,为什么要使用一个而不是另一个?
给定一个包含以下 4 个提交的仓库:
commitd - 最后一次提交
commitc
commitb
coomita - 初始提交
以下 git 命令有什么区别?: