git: Могу ли я сохранить неотслеживаемый файл, не добавляя его в индекс? - PullRequest
9 голосов
/ 17 июля 2010

Смежный вопрос Как спрятать неотслеживаемый файл? ответил "отследить файл". Однако это не работает для моих конкретных потребностей.

Я пытаюсь спрятать все, чего нет в индексе, с git stash save --keep-index, чтобы я мог проверить индекс в своем хуке перед фиксацией. Идея взята из примера "Тестирование частичных коммитов" на странице руководства git-stash. Я хочу убедиться, что то, что я на самом деле совершаю, проходит тесты, а не только то, что находится в рабочем каталоге. Вот что у меня есть:

echo "Running tests on the staging area."
git stash save --keep-index
# configure, build, run tests, clean
git stash pop; true

Кажется, это работает, пока в моем рабочем каталоге не отслеживаются файлы, которые не спрятаны. Некоторые поиски привели к запросу о функциях двухлетней давности: Возможность сохранять неотслеживаемые и / или игнорируемые файлы в stash , но ничего больше.

Должен ли я вообще использовать тайник? Возможно, есть лучший способ с временными ветвями или чем-то еще.

Ответы [ 2 ]

13 голосов
/ 02 октября 2011

Как я уже ответил на связанный вопрос, ответ теперь ДА:

Начиная с git 1.7.7, git stash принимает опцию --include-untracked для включения неотслеживаемых файлов в ваш тайник.

git stash --include-untracked

Или вы можете использовать опцию short -u.

git stash -u
2 голосов
/ 17 июля 2010

Нет, git stash будет только «записывать текущее состояние рабочего каталога и индекса».Таким образом, копирование не подхватит ваши неотслеживаемые файлы.

Переключение на временную ветку и отслеживание там неотслеживаемых файлов, как вы предлагаете, кажется разумным подходом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...