Git - Воздержание от некоторых локальных изменений - PullRequest
1 голос
/ 30 декабря 2010

Работая над пользовательским интерфейсом моего проекта, я тестирую его локально.Таким образом, я хочу иметь возможность раскомментировать некоторые удаленные включения в заголовке HTML, немного поработать, а затем протолкнуть изменения без комментариев, которые просто делают его локальное тестирование быстрее.Какой лучший способ сделать это с помощью git?

Ответы [ 3 ]

3 голосов
/ 30 декабря 2010

Вы можете создать отдельную ветку на вашем master, в которой эти строки не закомментированы, например,

git checkout -b testing master
# edit foo/bar/baz.html
git commit -a -m "Enable local testing optimizations."

, а затем оставить эту ветку в покое.Тебе редко придется к нему прикасаться.Позже вы выполняете некоторую работу, которую хотите протестировать, поэтому вы проверяете свою функцию ...

# hack hack hack
git commit -m "Feature complete."

... и затем (временно) объединяете свои тестовые изменения.

git merge testing

При условии, что вы не изменяете заголовки, это редко вызывает конфликты и должно сливаться аккуратно.Вы заканчиваете тестирование, и затем вы можете

git reset --hard HEAD^

отбросить коммит слияния, оставив свое дерево там, где HEAD указывает на вашу "Функцию завершена".commit.

Иногда вы можете перебазировать ветку testing против master или заново обработать ее, чтобы справиться с любыми изменениями из этой части.


Другой вариант -сохранить ваши изменения просто в .patch файле.Тогда ...

# Feature complete!
# Apply testing code... 
git apply testing.patch
# Test...
git apply -R testing.patch
# Remove testing code

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


Вы также можете написать update hook (см. githooks (5) ) чтобы никогда не выдвигать изменения, включающие этот патч тестирования.

0 голосов
/ 30 декабря 2010

А как насчет использования клиентских хуков для автоматизации раскомментирования после проверки и комментирования перед фиксацией?

Если изменяемые вами комментарии не всегда совпадают, это может бытьлучшее решение.

Для получения информации о крючках Git см. Раздел 7.3 Pro Git book .

0 голосов
/ 30 декабря 2010

Не добавлять файл в коммит. Добавляйте и сохраняйте только файлы с изменениями, которые вы хотите отправить. Например ...

Uncomment remote includes in foo.html
edit file1.html
edit file2.html

git add file1.html
git add file2.html
git commit -m "added feature"
git push origin master

Изменения, внесенные в foo.html, не будут отправлены.


Если вы хотите удалить локальные изменения в файл, используйте git checkout ...

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