Не разрешать коммит, когда файлы находятся в не погруженном состоянии - PullRequest
0 голосов
/ 22 июня 2011

Git позволяет вам совершать коммиты, даже когда есть файлы в распакованном состоянии, когда я использую

git commit -a -m "message"

Я знаю, это действительно так, но есть ли способ остановить использование коммитом опции -a после слияния

Спасибо Анкита Нема

Ответы [ 2 ]

2 голосов
/ 22 июня 2011

Я бы начал с корня проблемы и выяснил, почему при слиянии происходят неустановленные изменения.

Как правило, либо храните ваши изменения перед выполнением извлечения, либо фиксируйте их, чтобы ваш репозиторий был чист для входящего слияния.

Пример:

Предположим, вы работаете над чем-то и не хотите делать коммит сейчас, потому что вы еще не закончили. Но вам нужно объединить что-то важное для вашей задачи.

git stash save "description"
git pull
# merge everything and commit merge changes
git stash pop   #brings back all your changes from before

Затем Git повторно применяет все, что вы сохранили, с помощью git stash save, и вы находитесь на вершине объединенного хранилища с вашими незафиксированными изменениями.

0 голосов
/ 22 июня 2011

Вы можете использовать ловушку "pre-commit".

В каталоге «.git / hooks» создайте исполняемый файл с именем pre-commit.

Эта программа запускается каждый раз, когда выполняется фиксация в вашем хранилище: если код возврата не равен 0, фиксация отменяется.

В этой программе вы можете проверить файлы для передачи в цепочке «<<<<<<<…». Если вы обнаружите это, то это подсказка, что файлы все еще не объединены: поэтому вы отказываетесь от фиксации (с явным сообщением об ошибке). </p>

В каталоге ".git / hooks" вы найдете файл "pre-commit.sample", показывающий, как работает pre-commit. Вам просто нужно адаптировать его (простой «grep» должен подойти).

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