我试图通过创建要使用的补丁文件reviewboard 。
这将是最初的补丁。
diff -ruN --exclude=.git empty_dir working_dir > mypatch_00.patch
的作品,但我得到一个“选择的文件没有出现是一个差异。” 错误。
有什么办法得到它的工作使用Git的差异或者差异? 谢谢
我试图通过创建要使用的补丁文件reviewboard 。
这将是最初的补丁。
diff -ruN --exclude=.git empty_dir working_dir > mypatch_00.patch
的作品,但我得到一个“选择的文件没有出现是一个差异。” 错误。
有什么办法得到它的工作使用Git的差异或者差异? 谢谢
如果您想为您最初的承诺得到差异(也许我误解你的问题),你可以用它显示
git show COMMIT
或者把它作为文件:
git format-patch -1 COMMIT
当COMMIT
是这次提交的修订。 如果这是您目前的承诺,以及,你不必在所有指定。
但是,如果你的承诺是不是初次和你想获得全面的差异你的历史,你首先需要创建空分支:
git checkout --orphan empty # Create orphaned branch
git read-tree --empty # Remove all files from index
git commit --allow-empty -m 'Empty' # Initial commit
现在你可以做对空分支完全两种:
git diff empty..master
如果你想从没有完整的差异,以特定的提交,还有比在接受的答案更简单的方法:
empty_tree=$(git hash-object -t tree /dev/null)
git diff-tree -p ${empty_tree} $MY_COMMIT [${files}...]
价值${empty_tree}
总是4b825dc642cb6eb9a060e54bf8d69288fbee4904
,但我不喜欢在那里有一个神奇的数字。
我更喜欢“空”的标签。 简单的方法是:
git tag empty 4b825dc642cb6eb9a060e54bf8d69288fbee4904
因为标签可以指向直接树十岁上下,没有提交。 我们得到的工作树中的所有文件:
git diff --name-only empty
或与统计是一样的:
git diff --stat empty
所有的文件DIFF:
git diff empty
检查空格中的所有文件:
git diff --check empty