Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何git将单个暂存文件与其他分支中的相同文件区分开来_Git_Branch_Git Diff - Fatal编程技术网

如何git将单个暂存文件与其他分支中的相同文件区分开来

如何git将单个暂存文件与其他分支中的相同文件区分开来,git,branch,git-diff,Git,Branch,Git Diff,如果我理解正确,如果我理解 git diff master devel ./my_file 我得到两个树枝头之间的差值。但是,如果我在母版中进行了更改,并将其暂存,我想我可以使用 $ git diff --cached master devel ./my_file 但我得到了以下错误: usage: git diff [<options>] [<commit> [<commit>]] [--] [<path>...] 用法:git diff[

如果我理解正确,如果我理解

git diff master devel ./my_file
我得到两个树枝头之间的差值。但是,如果我在母版中进行了更改,并将其暂存,我想我可以使用

$ git diff --cached master devel ./my_file
但我得到了以下错误:

usage: git diff [<options>] [<commit> [<commit>]] [--] [<path>...]
用法:git diff[][][-][…]
那么,获取文件中的阶段性更改与另一分支中的相应文件之间的差异的正确方法是什么呢?

请尝试以下语法:

git diff --cached devel -- my_file.ext
这应该将
my_file.ext
master
中的当前阶段进行比较(假设您在
master
分支上运行此命令)

这个命令中有很多内容,但是请注意,
--cached
并没有提到
devel
,这是一个提交,其中stage的概念不适用。相反,
--cached
指的是在
--
分隔符后面的文件
my_file.ext

此命令对应于来自的以下模式:

git diff[--options]--cached[][--][…​]

这里的
devel
是提交文件,而
my_文件。ext
是文件路径。

您可以提交暂存文件,然后比较它们?是的,但是在提交之前能够检查文件会很好。何必麻烦呢?提交可以被丢弃(很像隐藏文件)。如果您愿意,您可以将提交视为临时提交。仅为检查阶段而进行提交违背了拥有阶段的目的。@TimBiegeleisen我将阶段误读为隐藏…很抱歉在原始问题中编写了“未分级”而不是“分级”。这很有效,但哪种情况是来自手册页?摘要和描述没有eem将介绍分支。@loris检查我的更新答案,它确实与Git手册相匹配。你是对的,尽管我觉得有点困惑,因为我的理解是分支是对提交的引用,而不是实际的提交。Git手册在技术文档中有点松散。至于语法,分支名称不能使用o表示该分支的主要提交,例如在rebase中。为了完整性起见,我将@Tim对我的原始问题的回答包括在内,该问题是关于获取相对于另一个分支的未分级文件与分级文件的差异。他的解决方案是
git diff-devel:my_-file--my_-file
。我还没有发现冒号的语法n在手册页中,但此处描述:
git diff [--options] --cached [<commit>] [--] [<path>…​]