Задать вопрос
@AndryG

Как перейти на другой комп посреди комита?

Сидишь, кодишь. И тут тебя выгоняют из-за компьютера.
Коммичу код "как есть". (только лишь для переезда, не истории ради)
Беру ноутбук (note), в которм комп (home) подключен как remote.
Получаю ветку с home и делаю soft reset, чтобы получить текущие изменения как было на home

Переходим обратно за home...
Наворотил кучу коммитов, пушов, пулов, перебазирований и через кучу отмен еле вернул всё взад через зад :)
Подскажите, пжлст, как правильно сохранить работу?

Решение
При пересадке назад нужно сделат user@note git push --force
Временный коммит убивается и все идет как по маслу.


update повторил историю не мышкой, а в терминале.

Собираюсь перейти за другой комп. Делаю коммит.
user@home MINGW64 /d/bk/bk (oldbk-94) 
$ git commit -m "Для пересадки"
[oldbk-94 8d51071cf] Для пересадки
 1 file changed, 7 insertions(+)


Index: src/maze/Prov.php
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/maze/Prov.php b/src/maze/Prov.php
--- a/src/maze/Prov.php	(revision 9e9a7dce650fd279cc9f9e2858a91f913663519a)
+++ b/src/maze/Prov.php	(revision 8d51071cf2b01730d0aa04cc0200956c1735156f)
@@ -6,6 +6,13 @@
 
 class Prov {
 
+    private const DEMO_CONST = <<<EOL
+      Этот кодд 
+      пишу на home,
+      Собираюсь исправить ошибки, но нужно пересесть... 
+EOL;
+
+
     private const SQL_UPDATE_MAZE = [
         'set' => [
             'meta' => "\n m.metadata = ':meta',",


На второй машине делаю pull, и reset, чтобы index был как до коммита на прежней машине.
user@note MINGW64 /d/bk/bk (oldbk-94)
$ git pull

user@note MINGW64 /d/bk/bk (oldbk-94)
$ git reset --soft HEAD~

user@note MINGW64 /d/bk/bk (oldbk-94)
$ git status
On branch oldbk-94
Your branch is behind 'home/oldbk-94' by 1 commit, and can be fast-forwarded.
  (use "git pull" to update your local branch)

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   src/maze/Prov.php


Продолжаю кодить на note... хочу перебраться обратно.
Коммичу изменения, pull их на home
user@note MINGW64 /d/bk/bk (oldbk-94)
$ git commit -m "Коммит на note для переезда назад"
[oldbk-94 724bfb58e] Коммит на note для переезда назад
 1 file changed, 7 insertions(+)

user@note MINGW64 /d/bk/bk (oldbk-94)
$ git push
To \\HOME\bk\bk
 ! [rejected]            oldbk-94 -> oldbk-94 (non-fast-forward)
error: failed to push some refs to '\\HOME\bk\bk'
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.


И вот я приплыл. Если я ща сделаю pull, то в мой текущий код прилетит изменения с перездного коммита и будет каша.
Как правильно поступить, чтобы опять перехать назада на home ?
  • Вопрос задан
  • 177 просмотров
Подписаться 1 Простой 7 комментариев
Решения вопроса 1
delphinpro
@delphinpro
frontend developer
Делаешь себе отдельную ветку для текущей работы. Срешь там как хочешь. Когда все будет готово, либо сливаешь в основную ветку сквэш коммитом, либо сбрасываешь (soft reset) весь свой срач в точке разветвления, делаешь нормальный коммит в основную ветку. Временную удаляешь везде. Повторяешь для следующего этапа.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@mkone112
Начинающий питонист.
Я думаю что проблема находится за границами примененения гита. Конечно можно:
  • Закомитил частичные изменения на машине 1
  • Стянул на машине 2
  • soft reset на машине 2
  • доделал на машине 2
  • Коммит и пуш на машине 2
  • Хард reset с origin на машине 1


Но вообще стоит посмотреть на всякие rsync
Ответ написан
Комментировать
@basili4-1982
По шагам.
1. начал работу начал отдельную ветку.
2. прекратил работу задача не завершена делаешь commit + push c комментом в начале WIP для githab Draft для gitlab
3. переходишь на другое раб место делаешь pull + checkput продолжаешь работать в своей ветке.
4. закончил работу. делаешь reset --soft + commit -m описание работы + push
5. далее MR если работаешь в команде либо merge в стабильную ветку если работаешь сам.

PS вот эти WIP и Draft не дадут залить ветку в стабильную ветку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы