Предотвращение локальных изменений в Git
я клонировал репозиторий и master
филиал в моем РЕПО отслеживает origin/master
. Я создал work
филиал и изменил некоторые конфигурационные файлы, относящиеся к моей машине dev, чтобы приложение работало.
мой обычный рабочий процесс будет переключиться на master
ветка, объединить изменения, внесенные в work
филиала и push
эти изменения вверх по течению. Проблема в том, что я не хочу, чтобы мои конкретные chnages толкали. Когда я сливаю мой work
филиала в master
эти изменения также объединяются.
единственное решение, которое я нашел до сих пор, это не фиксировать эти изменения в work
но это не удовлетворительное решение.
4 ответа:
Если вы хотите предотвратить фиксацию (следовательно, и нажатие) этих локальных файлов конфигурации, вы можете использовать git update-index --предположим-без изменений. Предполагается, что файлы, отмеченные этим флагом, никогда не изменятся (пока вы не сбросите флаг с --no-assume-unchanged)
если файлы еще не отслеживаются, вы можете добавить их в a .gitignore файл в локальный репозиторий, в противном случае вам нужно будет использовать
git update-index --assume-unchanged
Как сказал Маурисио.Ниже приведена дополнительная информация .гитюдного файлы:
один из способов решить эту проблему-"вишневый выбор" каждого изменения из вашей рабочей ветви в мастер, прежде чем вы нажмете вверх по течению. Я использовал метод, в котором я включаю слово nocommit в сообщение фиксации только для локальных изменений, а затем использую сценарий оболочки примерно так:
#!/bin/sh BRANCH=`git branch | grep ^\* | cut -d' ' -f2` if [ $BRANCH != "master" ]; then echo ": Current branch is not master" exit 1 fi git log --pretty=oneline work...master | grep -v -E '(NOCOMMIT|DEBUG):' | cut -d' ' -f1 | tac | xargs -l git cherry-pick
эта Вишня-выбирает каждое изменение, которое не помечено NOCOMMIT (или DEBUG) в главной ветви.
то, что вам нужно, это a .gitignore файл и добавить все ваши конфигурационные файлы внутри .файла.gitignore
после того, как ваш .gitignore file готов вам может понадобиться удалить ваши конфигурационные файлы из кэша
вот команда:
(Assume you use linux) vi .gitignore //Add all your config file inside //run the following command to remove your config file from GIT cache if your config files is already track by GIT git rm --cached myconfig.php