Git: отслеживать две ветви, когда файлы по-разному расположены на каждой

Учитывая, что я нахожусь на первой ветке, отслеживаю файлы 'foo' и 'bar', вот так:

my_repository/
            ./foo
            ./bar

Как я могу также отслеживать другую ветку (удаленную), где эти файлы 'foo' и 'bar' находятся в другом месте? То есть, когда я проверяю эту вторую ветку, my_repository папка превращается во что-то вроде этого:

my_repository/
            ./some_file
            ./another_file
            ./tests/
                 ../foo
                 ../bar

Объясняя немного больше: у меня есть первая ветка, отслеживающая удаленный репозиторий, и вторая ветвь, отслеживающая другой удаленный репозиторий.

В какой-то момент я клонировал второй репозиторий где-то еще, добавил foo а также bar файлы в tests папку, и передал ее.

Затем я начал совершать и вносить изменения в свой foo а также bar файлы из моей первой ветки, мой официальный клон (origin/master). Теперь я хотел бы также отправить эти изменения во второй репозиторий, а не просто перезаписывать содержимое файлов. Я хотел бы также иметь историю коммитов во второй ветке.

Проблема в том, что этот второй репозиторий помещает мои файлы в другое место.

Какие-нибудь советы?

2 ответа

Решение

Похоже, вы ищете стратегию слияния поддеревьев (см. Также здесь).

Там не должно быть никаких проблем. Есть два дерева с некоторым содержанием. Вы объединяете их и помещаете файлы в то или иное место слияния и запускаете это слияние.

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

Другие вопросы по тегам