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

Учитывая, что я нахожусь в первой ветке, отслеживаю файлы '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 ]

1 голос
/ 02 августа 2011

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

0 голосов
/ 02 августа 2011

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

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

...