Я совместно работаю над проектом с кем-то, поэтому мы решили использовать git. К сожалению, мы часто закодировать в местах, не имеющий интернета, так что мы в конечном итоге с чем-то вроде этого:Почему Git создала компиляцию без изменений файла?
origin/master: A---B---C
\
mylocalmaster: D---E---F
\
hismaster: G---H---I
Теперь, говорят, что он толкает его фиксации и получает это:
origin/master: A---B---C---G---H---I
\
master (local): D---E---F
Все, что я хочу сделать это раздвигать фиксации, чтобы получить это как в моем местном репо и онлайн один:
A---B---C---D---E---F---G---H---I
это похоже на работу, когда я git push
, но возникает проблема, когда я делаю git fetch
, а затем git merge
. Все, что я пытаюсь сделать, это получить , его совершает мой локальный репо, но в итоге я получаю сообщение об объединении с сообщением Merge remote-tracking branch 'origin/master'
.
Я не хочу иметь эту бессмысленную фиксацию, так как есть никаких противоречивых кодов в наших коммитах. Мы работаем над совершенно разными файлами, поэтому нет причин для этого. Как я могу предотвратить git от создания этого слияния?
Когда вы делаете git push в этой ситуации, вы должны получить сообщение об ошибке. Кажется, он не работает нормально. – bames53
С тех пор как я пришел на эту страницу, пытаясь узнать, как * force * git создать коммандную фиксацию без каких-либо изменений в файле, я остановлюсь здесь на том, что ответ на это - команда git commit-tree. См. 'Man git-commit-tree'. – Wildcard
@Wildcard Из любопытства, в какой ситуации вы хотели бы создать коммандную фиксацию, которую 'git merge -no-ff' не решит? –