每次我提交代码时,我都担心可能会错过一些依赖项,因此我正在寻找一种最简单的方法,在隔离的环境中测试我的git树,以确保git索引(“staged”)中的任何内容都可以自行编译/运行。我的代码依赖项存在于我执行'git add'的文件系统中,因此简单的编译和运行测试并不能保证如果树(或暂存区)被检出到干净的文件系统上,我所检入的任何内容都可以编译/运行。我可以有一个持续的构建,在提交后进行检查,但我不喜欢历史记录中有任何错误提交,以后必须修补。因此,我想要一种创建隔离环境的方法,其中包括树的检出以及索引/暂存区。我考虑过一件事情,那就是两次使用git stash,即:
1.调用'git stash'保存索引中的文件 2.以某种方式获取未跟踪的文件列表,'git add'所有这些文件,保存一个新的stash 3.删除以前未跟踪的所有文件 4.恢复原始的stash 5.现在我应该有一个干净的环境,其中只有已经检入的代码和我可以编译和测试的暂存区中的代码。 6.完成后,我恢复未跟踪文件的stash,然后取消跟踪它们,以便回到最初的状态。
(这些未跟踪的文件可能有用,但不一定是我想要检入存储库的东西-例如eclipse项目)。我感觉我正在为一个简单的问题过度设计。
1.调用'git stash'保存索引中的文件 2.以某种方式获取未跟踪的文件列表,'git add'所有这些文件,保存一个新的stash 3.删除以前未跟踪的所有文件 4.恢复原始的stash 5.现在我应该有一个干净的环境,其中只有已经检入的代码和我可以编译和测试的暂存区中的代码。 6.完成后,我恢复未跟踪文件的stash,然后取消跟踪它们,以便回到最初的状态。
(这些未跟踪的文件可能有用,但不一定是我想要检入存储库的东西-例如eclipse项目)。我感觉我正在为一个简单的问题过度设计。
git ls-files --others
命令获取未跟踪文件列表。如果这是暂时的,您可以随时使用git add
命令添加它们,然后删除文件,测试,再使用git checkout
命令(从索引中复制),最后使用git reset HEAD
命令将它们从索引中清除。 - Cascabel