Невозможно нажать после неудачной загрузки в Git - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть репо, в котором есть только один файл (файл блокнота Jupyter).Поскольку файл был создан с использованием Google Colab, он не существовал в моем локальном репо, а был только в моем репозитории GitHub.

Я только что добавил файл README и пытался перенести мой локальный репозиторий на GitHub.Но так как удаленное репо было впереди моего локального, я не смог толкнуть после совершения.

Затем я решил вытащить, но так как я не был знаком с синтаксисом, я не указал никаких параметров после git pull.Затем я попытался снова с git pull origin master, но теперь я получил сообщение об ошибке, в котором говорится, что есть ошибка, и имя репозитория изменилось на «master | MERGING» ... Я знаю, что мне, вероятно, нужно перенести пульт в новую локальную ветку иобъединить его с моей основной веткой, но я не знаю, как это сделать здесь, а также боюсь все испортить ... Спасибо за любые советы!

georg@DESKTOP-9VE7F0E MINGW64 /d/Dropbox/WorkingDir/personal-projects/tf_and_col                                                                                                                                                                                               ab (master)
$ git commit -m "Add README file"
[master 13c0b76] Add README file
 1 file changed, 16 insertions(+)
 create mode 100644 README.md

georg@DESKTOP-9VE7F0E MINGW64 /d/Dropbox/WorkingDir/personal-projects/tf_and_col                                                                                                                                                                                               ab (master)
$ git push origin master
To https://github.com/georgeliu1998/tf_and_colab.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/georgeliu1998/tf_and_cola                                                                                                                                                                                               b.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

georg@DESKTOP-9VE7F0E MINGW64 /d/Dropbox/WorkingDir/personal-projects/tf_and_col                                                                                                                                                                                               ab (master)
$ git checkout master
Already on 'master'

georg@DESKTOP-9VE7F0E MINGW64 /d/Dropbox/WorkingDir/personal-projects/tf_and_col                                                                                                                                                                                               ab (master)
$ git pull
remote: Enumerating objects: 20, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 18 (delta 5), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (18/18), done.
From https://github.com/georgeliu1998/tf_and_colab
   0a500ee..1238317  master     -> origin/master
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/<branch> master


georg@DESKTOP-9VE7F0E MINGW64 /d/Dropbox/WorkingDir/personal-projects/tf_and_col                                                                                                                                                                                               ab (master)
$ git push origin master
To https://github.com/georgeliu1998/tf_and_colab.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/georgeliu1998/tf_and_cola                                                                                                                                                                                               b.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

georg@DESKTOP-9VE7F0E MINGW64 /d/Dropbox/WorkingDir/personal-projects/tf_and_col                                                                                                                                                                                               ab (master)
$ git remote
origin

georg@DESKTOP-9VE7F0E MINGW64 /d/Dropbox/WorkingDir/personal-projects/tf_and_col                                                                                                                                                                                               ab (master)
$ git pull origin
You asked to pull from the remote 'origin', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.

georg@DESKTOP-9VE7F0E MINGW64 /d/Dropbox/WorkingDir/personal-projects/tf_and_col                                                                                                                                                                                               ab (master)
$ git pull origin master
From https://github.com/georgeliu1998/tf_and_colab
 * branch            master     -> FETCH_HEAD
hint: Waiting for your editor to close the file... warning: failed to restrict f                                                                                                                                                                                               ile handles (2)

handle #0: 0000000000000434 (type 3, handle info (1) 0
handle #1: 0000000000000438 (type 3, handle info (1) 1

This is a bug; please report it at
https://github.com/git-for-windows/git/issues/new

To suppress this warning, please set the environment variable

        SUPPRESS_HANDLE_INHERITANCE_WARNING=1

error: cannot spawn C:/Users/georg/AppData/Local/atom/bin/atom.cmd: No such file                                                                                                                                                                                                or directory
error: unable to start editor 'C:/Users/georg/AppData/Local/atom/bin/atom.cmd'
Not committing merge; use 'git commit' to complete the merge.

georg@DESKTOP-9VE7F0E MINGW64 /d/Dropbox/WorkingDir/personal-projects/tf_and_col                                                                                                                                                                                               ab (master|MERGING)
$ git push origin master
To https://github.com/georgeliu1998/tf_and_colab.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/georgeliu1998/tf_and_colab.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

georg@DESKTOP-9VE7F0E MINGW64 /d/Dropbox/WorkingDir/personal-projects/tf_and_colab (master|MERGING)
$

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

git pull равно git fetch плюс git merge.Если вы сомневаетесь, не звоните git pull, вместо этого звоните git fetch, а затем git status и перестаньте думать, что вы хотите делать дальше.

В вашем случае последующий git merge попытался объединить измененияс origin/master с изменениями в вашем местном master, но это привело к конфликту.git ожидает, что вы решите конфликт, а затем git add файл, чтобы пометить его как решенный, и git merge --continue для завершения слияния.

Если вы хотите прервать слияние, вы можете сделать git merge --abort чтобы вернуться в нормальное состояние.Если по какой-либо причине эта команда не работает, git reset --hard HEAD очистит ваш рабочий каталог. ПРЕДУПРЕЖДЕНИЕ : git reset --hard отменяет все незавершенные изменения в ваших файлах!

0 голосов
/ 18 декабря 2018

В результате вы внесли локальные изменения в ветку, когда она находилась за удаленным узлом.Поэтому, когда вы фиксировали локально, вы создали новую ссылку, которая не синхронизировалась с порядком коммитов на удаленном сервере.

origin/master: * -> * -> *
local/master:  \__ -> your commit

Если вам нужен только один коммит, проверьте новую ветку для сохранениятекущее состояние

git checkout -b temp-updates

Затем скопируйте хеш коммита из первой строки git log

commit 166a17b4852f5b83a09c3198169d86959a68e3dd

Затем вернитесь к master и сбросьте его так, чтобы он совпадал с вашей удаленной веткой:

git checkout master
git reset --hard origin/master

Теперь вы можете выбрать коммит с внесенными вами изменениями:

git cherry-pick 166a17b4852f5b83a09c3198169d86959a68e3dd

Теперь вы должны бытьв состоянии чисто толкать

git push origin master
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...