перезаписать другую ветку (github) в Smartgit

Я новичок в smartgit-ubuntu, и у меня есть проблема. Я начал использовать smartgit для графического интерфейса. У меня есть проект на github, и у меня есть 2 ветки: главная и новая ветка. Я клонировал проект на smartgit и изменил код в новой ветке. Кроме того, я отправил код в новую ветку, а код находится в новой ветке github. Я сделал ошибку и хочу перезаписать новую ветку мастер-кодом. В общем, я хочу изменить новый код ветки на мастер-код, и я хочу отправить его в новую ветку github. Как я могу сделать? Спасибо заранее.


person wowo    schedule 01.04.2018    source источник


Ответы (2)


Вы можете сбросить локальную новую ветку на master, а затем принудительно отправить ее.
Пример сброса с помощью SmartGit можно увидеть здесь.

Даже без smartGit вы можете сделать это в командной строке:

cd /path/to/my/repo
git checkout master
git pull
git checkout newBranch
git reset --hard master
git push --force -u origin newBranch

Однако, как комментирует OP:

Этот сброс удаляет коммиты github и копирует master в другую ветку.
А именно, я хочу зафиксировать весь код master в другой ветке в github, и я не хочу удалять прошлые коммиты.

В этом случае вы можете:

То есть:

git checkout newBranch
git reflog show
git reset --hard <oldSHA1 of newBranch>

(обратите внимание на последнюю цифру -- .: «тире-тире-пробел-точка» в конце второй проверки)

  • добавить, зафиксировать и отправить: вы будете добавлять, фиксировать и отправлять файлы из master в newBranch, сохраняя при этом историю newBranch.
    Если вы уже отправили newBranch ранее, вам нужно будет принудительно отправить

    git push --force
    
person VonC    schedule 01.04.2018
comment
есть ли способ перезаписать локальную ветку и отправить ее на github. Этот сброс удаляет коммиты github и копирует master в другую ветку. А именно, я хочу передать весь мастер-код в другую ветку в github и не хочу удалять прошлые коммиты. - person wowo; 02.04.2018

В любом git чтобы ветка указывала на конкретную фиксацию (включая другую ветку), вам необходимо reset. В частности, в smartgit Как оформить заказ и сбросить настройки с помощью smartgit? указывает у вас должен быть reset в вашем gui - просто проверьте новую ветку и сбросьте ее до master.

person kabanus    schedule 01.04.2018