Как внести изменения, которые вижу только я? - PullRequest
7 голосов
/ 01 мая 2010

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

Я хочу, чтобы эти изменения ТОЛЬКО работали на моей станции разработки и не были видны при нажатии. если я сделаю это на ветке, то мне придется каким-то образом отключать это изменение перед каждым нажатием.

это поддерживается git?

Ответы [ 3 ]

7 голосов
/ 01 мая 2010

Если у вас есть хотя бы Git 1.7.0, вам может понравиться этот бит «сантехника»:

git update-index --skip-worktree -- path

Из справочной страницы git update-index в разделе «Бит пропуска рабочего дерева» :

Бит Skip-worktree может быть определен в одном (длинном) предложении: при чтении запись, если она помечена как skip-worktree, то Git делает вид, что версия рабочего каталога обновлена ​​и прочитайте индекс версии вместо этого.

Чтобы уточнить, «чтение» означает проверку существования файла, чтение файла атрибуты или содержимое файла. Версия рабочего каталога может быть присутствует или отсутствует.

«Бит skip-worktree» является основой для механизма разреженной проверки, описанного в git read-tree manpage` .


В более старых версиях Git есть связанный «бит» (git update-index --assume-unchanged), но его не следует использовать для целей OP. Кажется, что это может быть полезно для ситуации ОП , но Сопровождающий Git сказал, что его контракт («обещание») делает его непригодным для таких целей .

2 голосов
/ 01 мая 2010

Почему бы не использовать настройку драйвера фильтра gitattributes ?

smudge

Каждый раз, когда вы проверяете ваш каталог, он проверяет сценарий на шаге smudge на наличие этого файла (и только этого файла), если выполняются определенные условия (как в «это или не ваша станция разработки» ) и будет соответственно изменять содержимое.
Шаг clean восстановит его содержимое или, по крайней мере, проигнорирует эту конкретную модификацию.

0 голосов
/ 01 мая 2010

Я не уверен, что понимаю вопрос: почему ты не можешь просто уйти? Имейте master вашу основную, публичную ветку и продолжайте перебазировать вашу частную ветку на master (или объединяйте master с вашей частной веткой) Никогда не доводите свои шансы до master, вносите изменения только с master в свою частную ветку.

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

...