Всякий раз, когда я фиксирую, я беспокоюсь о том, что, возможно, пропустил зависимость, и я ищу самый простой способ проверить мое git-дерево изолированно, чтобы убедиться, что все, что находится в git-индексе («staged»), будет на самом деле компилироваться / запустить самостоятельно.
Зависимости моего кода существуют в файловой системе, откуда я делаю 'git add', и поэтому простые компиляция и запуск тестов не гарантируют, что все, что я проверяю, скомпилируется / запустится, если дерево (или промежуточная область) было извлечено на чистая файловая система.
У меня может быть непрерывная сборка, которая будет проверяться после отправки, но я предпочитаю не иметь никаких плохих коммитов в истории, которые мне позже придется исправлять. Поэтому мне нужен способ создания изолированной среды, которая включает в себя проверку дерева, а также область индекса / промежуточной области.
Одна вещь, которую я рассмотрел, - это использование git stash дважды, т. Е .:
- Вызвать 'git stash', чтобы сохранить файлы в индексе
- Каким-то образом получить список файлов, которые не отслеживались, "git add", все эти файлы, сохранить новый тайник
- Удалить все ранее неотслеживаемые файлы
- Восстановить исходный тайник
- Теперь у меня должна быть чистая среда, в которой есть только проверенный код и код в промежуточной области, который я могу скомпилировать и протестировать.
- После завершения я восстанавливаю тайник неотслеживаемых файлов, а затем открываю их, чтобы оставить меня в том же положении, в котором я находился изначально.
(Эти неотслеживаемые файлы могут быть полезными, но не обязательно теми, которые я хочу зарегистрировать в репозитории - например, проекты eclipse).
У меня такое чувство, что я перерабатываю простую проблему, однако.