问题标签 [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 命令有什么区别?
git diff HEAD
git diff HEAD^
git diff --cached
或同义词git diff --staged
git diff
git - git diff - 显示行尾更改?
我的编辑器正在更改我的源文件的行尾。当我这样做时git diff
,我看到同一条线两次——一次-
和一次+
——没有明显的区别。
我如何才能git diff
向我展示这种变化实际上是什么?
git - 本地存储库上单个开发人员的 Git 工作流
我正在尝试将个人 git 工作流程改进为更容易处理的东西。
以下是我在这篇文章中如何使用 git 的一些背景:
一个开发人员,他是唯一在存储库上工作的人。
存储在本地计算机上的存储库的单个副本。
只有两个分支“dev”和“master”。
所有工作都在“dev”上完成。
我想要完成的是达到对“主”分支的唯一提交是基于确认的稳定“开发”代码的工作生产版本。
实际上,我想要做的是:
当“dev”中的所有内容都经过测试并准备就绪时,将“master”更新为“dev”分支文件树的精确克隆。
对“master”进行细微修改以更新版本号等...
提交到更新的“master”分支。
从“master”分支创建一个新标签。
我接近第一步的方式是检查“master”分支,然后运行:
据我了解,这有效地消除了“master”中的任何内容,并用“dev”的内容替换了整个树。运行“git status”似乎表明这正在做基于上面#1的预期。
那么,第一个问题:这对吗?
在“master”分支收到这些更新后,我运行我的脚本来更新文件中的版本号。然后,我只运行一个标准的“git add”。和“git commit -a”添加所有更改。最后,我制作了一个新标签并返回“dev”分支重新开始编码。
那么,另一个问题是:在这个过程中是否有什么会导致问题?
更新:我应该把它放在第一次,但我不简单地使用合并的原因是更改 master 上的版本号,然后尝试与 dev 中的更改合并会导致合并冲突。我知道它们无关紧要,但它仍然会停止这个过程。我之前使用过“merge -Xtheirs {branch}”来处理它,但我也不确定。
UPDATE2:这里有一些我知道不起作用的东西。我整理了一个适用于 Mac OSX 的 bash 脚本。第一个尝试使用合并:
我尝试的另一种方法是使用 -Xtheirs,它一开始看起来很有效,但它并没有更新所有内容。要看到这一点,请删除上面 BREAK 之后的最后几行并将其替换为:
没有冲突,但 'output-master-test1-c.txt' 显示 'VERSION-2.0' 而不是所需的 'VERSION-XXX'。这似乎已经发生,因为文件没有更改。'output-master-test2-c.txt' 文件具有预期的 'VERSION-XXX' 字符串。当然,问题在于尝试更新到版本 3.0 的查找和替换将在 test1-c 中丢失,因为它无法识别 VERSION 字符串的 2.0 部分。
git - 如何比较来自两个不同分支的文件
我有一个脚本在一个分支中运行良好,但在另一个分支中被破坏。我想并排查看这两个版本,看看有什么不同。有没有办法做到这一点?
需要明确的是,我不是在寻找比较工具(我使用Beyond Compare)。我正在寻找一个 Git diff 命令,它允许我将主版本与我当前的分支版本进行比较,以查看发生了什么变化。我不在合并或任何事情的中间。我只想说类似
git - 在 GUI 中探索 git-diff 输出?
是否有程序允许在 GUI 中探索 git-diff 命令的输出?
我正在寻找的是类似于 SmartGit 如何显示其工作副本和 HEAD 之间差异的视图。显示与 HEAD 不同的每个文件的位置,并显示焦点文件的差异。
我不确定是否可以让 SmartGit 显示“git diff”命令的输出。
git - Git Diff - 指示行移动
我正在开发一个与 git diff 一起使用的脚本,以便能够“过滤掉”只是在文件中移动的行。使用 Designer 文件时,Visual Studio 2008 变得很痛苦。有时似乎坚持以不同的顺序重写整个文件。这使得很难看到文件的实际更改。我正在将 git diff 输入脚本以调整 git diff 的输出。我可以从输出中删除线条,也可以用不同的符号替换 +/- 来表示移动,但我不确定要使用哪些符号。
vim - Vim:退出拆分窗口时删除缓冲区
我的 .vimrc 中有这个非常有用的功能:
它所做的基本上是在垂直拆分窗口中从存储库中打开我当前正在处理的文件,然后与它进行比较。这非常方便,因为我可以轻松比较原始文件的更改。
但是,有一个问题。完成比较后,我通过键入 :q 删除拆分窗口。但是,这不会从缓冲区列表中删除缓冲区,我仍然可以在缓冲区列表中看到 compare.tmp 文件。这很烦人,因为每当我进行新比较时,我都会收到以下消息:
警告:文件“temp/compare.tmp”自编辑开始后已更改。
无论如何要从缓冲区中删除文件以及关闭垂直拆分窗口?
git - 在 Git 中仅导出具有文件夹结构的修改和添加的文件
我想在特定提交中获取修改和添加的文件列表,以便我可以导出它们并生成具有文件结构的包。
这个想法是获取包并将其提取到服务器上。由于许多原因,我无法创建一个挂钩来自动提取 repo,而我必须保持服务器更新的最简单方法是生成这个包。
git - GIT:更改了具有特定扩展名的文件名
当我想获取我为此更改的文件的列表时,我使用以下命令:
但是很多时候,我得到了很多我现在不关心的文件。例如,如果我要上传到我的 PHP 服务器,我通常只需要 .php 文件的列表。我试过这个:
但不幸的是,它只显示第一个子目录中的文件。所以看起来它没有将双星解释为递归。
任何的想法?
git - git:为什么 git diff 没有显示任何差异?
如果我在我的 repo 上运行“git status”,它会给出:
但是,如果我执行 'git diff myfile',它不会显示任何差异。这是因为我进行了更改并删除了它,所以它恢复到原来的状态了吗?
我应该运行“git checkout myfile”来清除它吗?