Прежде чем сходить в локальный репозиторий, лучше всего перенести все ваши ожидающие изменения.
Самый простой способ объединить изменения есть с git merge
:
git fetch origin
git merge origin/master
(Shortcut: git pull origin master
)
Другой вариант заключается в перебазироваться на вершине изменения с git rebase
:
git fetch origin
git rebase origin/master
(Ярлык: git pull --rebase origin master
)
С обоими параметрами, если есть изменения, которые вы сделали с помощью веб-интерфейса GitHub, который конфликтует с изменениями, которые вы сделали локально, у вас будут конфликты, которые вы должны разрешить вручную.
Если все идет хорошо (без конфликтов), две операции (слияние или переадресация) приведут к одному и тому же контенту, но к другому порядку коммитов. При слиянии, если вы посмотрите на историю, используя gitk
, вы увидите две ветви, которые слились в одну. С rebase вы увидите прямую линию с появлением изменений в веб-интерфейсе, а ваши локальные изменения появятся позже. Это также означает, что идентификаторы фиксации измененных версий будут переписаны. Некоторые люди считают, что прямая линия истории выглядит более организованной. Но в любом случае, как я сказал ранее, содержимое ваших файлов будет точно таким же.
Я знаю, что вы попросили слить изменения в один конкретный файл.Но две ветви Git (GitHub и ваши местные) расходились, и только операции слияния или перезагрузки могут вернуть их вместе. Существуют и другие, менее чистые способы получить то, что вы хотите, но лучше всего использовать один из этих рекомендуемых способов.
Синхронизация не объединяет файлы? –
Я не пользуюсь никакими клиентами (клиентами github), я пытаюсь сделать это из Linux. – OmPS