Я получаю эту ошибку с PR, но когда я git status
, она говорит nothing to commit, working directory clean
.
Это на ветке с PR.
On branch pr12
nothing to commit, working directory clean
Я получаю эту ошибку с PR, но когда я git status
, она говорит nothing to commit, working directory clean
.
Это на ветке с PR.
On branch pr12
nothing to commit, working directory clean
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 заметит это и даст вам зеленую кнопку "Слияние".
Когда я столкнулся с этим сообщением, это было из-за того, что моя оригинальная репо была за оригиналом. В моем конкретном случае репо я разветкил pydata/pandas
.
Мне пришлось настроить удаленный ящик для своей вилки, выполнив:
> git remote add upstream [email protected]:original_user/original_repo.git
> git remote -v
origin [email protected]:some_user/pandas.git (fetch)
origin [email protected]:some_user/pandas.git (push)
upstream [email protected]:pydata/pandas.git (fetch)
upstream [email protected]:pydata/pandas.git (push)
(Примечание: git remote add upstream
- это способ git: "Добавить удаленный вызов" вверх по течению ". Имя может быть любым.)
Затем я извлек последние коммиты из исходного репо с помощью:
> git fetch upstream
> git checkout master # Just in case you're not already on master
> git merge upstream/master
и, наконец, нажмите объединенное репо на github:
> git push