У меня есть 3 репозитория git:
local
: мое репозиторий для разработки на моем локальном компьютере;remote1
используется для сотрудничества с другими разработчиками;remote2
, который является рабочим сервером.Я хотел бы
pull
регулярно переходить сremote1
на моеlocal
репо и сохранять некоторые локальные отслеживаемые файлы нетронутыми (т.е. получать и объединять изremote1
, но исключить некоторые локальные отслеживаемые файлы из слияния).С другой стороны, я хотел бы регулярно
push
вremote2
, и я хотел бы, чтобы также отправлялись локальные отслеживаемые файлы.
Другими словами, мне бы хотелось иметь следующие версии file1
:
local
: file1 v.1remote1
: file1, v.2remote2
: file1, v.1
Примечание. file1
может быть любым (.css, .html, даже .png).
Я пробовал следующие подходы:
.gitignore
файл (не работает, файл снова становится отслеживаемым после извлечения изremote1
)git pull --no-ff --no-commit remote1 master
, затемgit checkout --ours file1
в соответствии с этим (не работает, file1 становится v.2).git/info/exclude
как описано здесь (не работает, ничего не игнорируется и даже если он игнорируется,file1
не будет перемещен вremote2
)