我经常发现,我希望在git树中共享工作状态,而不使用git diff
和pastebins、电子邮件等进行提交/分支。当所有更改都是对已经跟踪的文件进行修改时,这是很好的,但当涉及新文件时就不行了。我可以使用git add -N
来添加一个空的跟踪文件来对其进行区分,但是如果我要在所讨论的更改之前提交其他内容(或者所涉及的更改只是我想扔掉的垃圾),这是有问题的。有没有一种简单的方法可以在不改变存储库中的状态的情况下获得差异来添加git diff
中包含的新文件?到目前为止,我得到的是一个丑陋的剧本:
for i in "$@" ; do diff -u /dev/null "$i" | sed -e 's@^+++ @+++ b/@ ; done
这是最好的方法吗?
我并不完全反对改变git状态的替代解决方案,只要在进行更改之前很容易返回到确切的状态(例如,修改各种文件,进行一些更改,等等)。
发布于 2017-10-04 07:26:17
您可以将未跟踪、修改或删除的文件导出到像.tar.gz
这样的存档中,并将它们发送给您的同事。您可以尝试以下方法:
tar zvcf ~/new-files-cache.tar.gz `git diff --name-only --diff-filter=ACMRT`
tar zvcf ~/new-files-cache.tar.gz ` git status --short | sed 's/^ *[^ ]* \(.*\)/\1/g' `
https://stackoverflow.com/questions/29719369
复制相似问题