如何在 git diff --no-index
中排除文件和目录?
例如,我想比较两个目录 project1
和 project2
的差异,而忽略它们顶级的 .git
目录(project1/.git
和 project2/.git
)以及它们所有的 .DS_Store
文件。
project2
添加为project1
的远程,然后只需比较它们的HEAD
,使用git diff
命令。git remote add other ../project2/.git
git fetch other
# Perform the diff
git diff other/HEAD
project2
尚不是Git存储库,您可以暂时将其变成一个(感谢Josiah Yoder提供的评论)。# Set up project2 repo
cd ../project2
git init
git add .
# Add as remote from project1
cd ../project1
git remote add other ../project2/.git
git fetch other
# Perform the diff
git diff other/master
# Clean up
git remote remove other
cd ../project2
rm -r .git
git init; git add .
,然后在完成差异比较后,在非仓库目录中执行 rm -r .git
吗? - Josiah Yodergit remote add other path/to/project2/.git
完成的,然后执行 git fetch other
和 git diff other/master
。在非仓库的情况下,我会从非仓库执行这些命令。 - Josiah Yoder
diff
,但它没有--color-words
。 - ma11hew28