Я новичок в smartgit-ubuntu, и у меня есть проблема. Я начал использовать smartgit для графического интерфейса. У меня есть проект на github, и у меня есть 2 ветки: главная и новая ветка. Я клонировал проект на smartgit и изменил код в новой ветке. Кроме того, я отправил код в новую ветку, а код находится в новой ветке github. Я сделал ошибку и хочу перезаписать новую ветку мастер-кодом. В общем, я хочу изменить новый код ветки на мастер-код, и я хочу отправить его в новую ветку github. Как я могу сделать? Спасибо заранее.
перезаписать другую ветку (github) в Smartgit
Ответы (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, и я не хочу удалять прошлые коммиты.
В этом случае вы можете:
- найдите фиксацию, на которую ссылается newBranch до сброса: см. "Восстановление из
git reset --hard?
"
То есть:
git checkout newBranch
git reflog show
git reset --hard <oldSHA1 of newBranch>
извлечь файлы из
master
(оставаясь в newBranch)git checkout newBranch git checkout master -- .
(обратите внимание на последнюю цифру -- .
: «тире-тире-пробел-точка» в конце второй проверки)
добавить, зафиксировать и отправить: вы будете добавлять, фиксировать и отправлять файлы из
master
вnewBranch
, сохраняя при этом историюnewBranch
.
Если вы уже отправили newBranch ранее, вам нужно будет принудительно отправитьgit push --force
В любом git
чтобы ветка указывала на конкретную фиксацию (включая другую ветку), вам необходимо reset
. В частности, в smartgit
Как оформить заказ и сбросить настройки с помощью smartgit? указывает у вас должен быть reset в вашем gui
- просто проверьте новую ветку и сбросьте ее до master.