Вы можете создать отдельную ветку на вашем 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) ) чтобы никогда не выдвигать изменения, включающие этот патч тестирования.