Ответ 1
git status
расскажет о состоянии вашего дерева рабочего дерева и вашего индекса (где живут поэтапные изменения) относительно последнего фиксации текущей ветки. Результат, который вы видите, означает, что файлы на вашем диске точно соответствуют последней фиксации в вашей ветке. То есть "ничего не совершать".
Сообщение от GitHub не об фиксации, а о слиянии. GitHub хотел бы предложить вам один клик, чтобы объединить эту ветвь в ветку master
, но она не может, потому что это слияние приводит к конфликтам. Поскольку у GitHub нет способа помочь вам разрешить конфликты на веб-сайте, он просит вас разрешить их на вашей собственной машине.
Лучший способ справиться с этой ситуацией - объединить текущую ведущую ветвь в ветку темы локально, а затем нажать результат в GitHub. Для этого сделайте следующее:
$ git checkout pr12 # If you're not already on pr12
$ git fetch origin
$ git merge origin/master
(Я предполагаю, что удаленный GitHub называется origin
. Обычно это, и вы, вероятно, знаете, если это не так.)
Сначала мы убеждаемся, что мы на правильной ветке. Затем мы удостоверяемся, что у нас есть последний код из ветки master
в репозитории GitHub. Затем мы объединяем этот код в нашу ветвь pr12
.
Помните: git fetch origin
обновляет наш локальный origin/master
таким же, как GitHub master
, но он не касается локальной ветки, называемой просто master
. Нам нужно будет проверить наш ветвь master
, чтобы внести в нее изменения. Вместо этого мы просто обновляем нашу идею о том, что на GitHub (origin/master
) и объединяем это в наш pr12
.
Когда вы запустите команду merge
, вы увидите конфликты. Те, кто принимает решения, которые git (и GitHub) не могли сделать автоматически. Отредактируйте эти файлы, чтобы они были такими, как вы хотите, чтобы они закончились. Тогда:
$ git add each/file.txt that/had/conflicts.conf
$ git commit # Your editor will open with a pre-filled
# commit message. Just save and close the file.
$ git push origin pr12
То есть мы добавляем версии исправленных файлов, а затем завершаем слияние слиянием, которое мы начали с git merge
. Наконец, мы нажимаем ветку с новым объединением до GitHub.
Поскольку мы разрешили конфликты, эта ветка должна быть тривиальной, чтобы слить другой путь, в master
. GitHub заметит это и даст вам зеленую кнопку "Слияние".