Загрузка нового коммита в GitHub, заменяя старый, плохой, один - PullRequest
0 голосов
/ 23 марта 2020

Извините, я нуб Git, но мне удалось создать «хороший» мастер на моей локальной машине, и теперь я хотел бы заменить существующий мастер на моей учетной записи GitHub.

Лет go Я создал учетную запись GitHub и каким-то образом получил коммит, но данные были плохими и не такими, как я хотел.

Теперь у меня наконец есть хороший коммит, я готов и хочу чтобы отправить его.

Мне бы очень хотелось сохранить имя учетной записи GitHub, но полностью удалить все коммиты, которые там были. Я думаю, что GitHub говорил что-то об изменении имени учетной записи или что-то в этом роде.

Это была моя первая попытка:

c:\Dev>git remote add XYZ https://github.com/[]/[].git

c:\Dev>git push XYZ master
Username for ...
Password for ...
To https://github.com/[]/[].git
! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/[]/[].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.

Затем я увидел сообщение о попытке "исправить" его с помощью этих Команды: (Это могло бы только испортить это больше, я не знаю)

c:\Dev>git push XYZ master
Username for ...
Password for ...
To https://github.com/[]/[].git
! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/[]/[].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.

c:\Dev>git fetch XYZ master
warning: no common commits
remote: Enumerating objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
Unpacking objects: 100% (3/3), 6.83 KiB | 55.00 KiB/s, done.
From https://github.com/[]/[]
* branch            master     -> FETCH_HEAD
* [new branch]      master     -> XYZ/master

c:\Dev>git merge XYZ master
merge: XYZ - not something we can merge

Тогда я попробовал еще раз ..

c:\Dev>git push XYZ master
Username for ...
Password for ...
To https://github.com/[]/[].git
! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/[]/[].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.

Я полностью сбит с толку, и дон не хочу испортить моего локального мастера случайно, так что мне нужно сделать, чтобы мой локальный мастер был загружен в мою учетную запись GitHub?

У меня есть приложение GitHub Desktop, но меня это смущает, особенно в том, что два разных, старых и новых, мастера, которые у меня там есть.

И я, конечно, не хочу «объединять» их, так как мне бы очень хотелось просто полностью избавиться от чего-либо из оригинала commit для GitHub.

Вполне возможно, что исходный локальный мастер был из другого каталога, с другим источником.

Я видел кое-что об этой "силе", которая не так уж хороша в использовании, и я хотел бы не использовать это, если это возможно.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 23 марта 2020

Ваша удаленная главная ветвь содержит работу, которая не включена в вашу локальную главную ветвь.

Вот почему удаленная главная ветвь отклоняет ваши изменения, поскольку вы перезаписываете их изменениями нового локального главного (обычно это нежелательное поведение, поскольку вы можете потерять код, написанный одним из ваших коллег-разработчиков).

Вы можете указать, чтобы перезаписать ваш удаленный мастер на локальный, указав флаг --force:

git push XYZ master --force

Предупреждение: имейте в виду, что это перезаписывает то, что хранится в вашем удаленном репозитории GitHub и оно теряется, если у вас нет другой копии.

Ссылка: https://git-scm.com/docs/git-push

0 голосов
/ 23 марта 2020

Спасибо !!!

Я попробовал и получил это обратно, поэтому я предполагаю, что это сработало:

c:\Dev\>git push XYZ master --force
Username for ...
Password for ...
Enumerating objects: 69, done.
Counting objects: 100% (69/69), done.
Delta compression using up to 4 threads
Compressing objects: 100% (65/65), done.
Writing objects: 100% (69/69), 434.79 KiB | 7.76 MiB/s, done.
Total 69 (delta 36), reused 0 (delta 0)
remote: Resolving deltas: 100% (36/36), done.
To https://github.com/[]/[].git
+ ec4c115...8e2805a master -> master (forced update)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...