LINUX.ORG.RU

Гит изменения между ветками

 


0

1
┌─[user@debian-home]─[master]─[~/.emacs.d]
└──╼ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
┌─[user@debian-home]─[master]─[~/.emacs.d]
└──╼ git checkout compilation
Switched to branch 'compilation'
┌─[user@debian-home]─[compilation]─[~/.emacs.d]
└──╼ git status
On branch compilation
nothing to commit, working tree clean
┌─[user@debian-home]─[compilation]─[~/.emacs.d]
└──╼ echo "some" >> init.el
┌─[user@debian-home]─[compilation]─[~/.emacs.d]
└──╼ git diff
diff --git a/init.el b/init.el
index 0bb503b..43dafa5 100644
--- a/init.el
+++ b/init.el
@@ -1359,3 +1359,4 @@ can be used to add a number of spaces to the front and back of the string."
     )

 (add-hook 'after-save-hook 'byte-compile-current-buffer)
+some
┌─[user@debian-home]─[compilation]─[~/.emacs.d]
└──╼ git checkout master
M       init.el
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
┌─[user@debian-home]─[master]─[~/.emacs.d]
└──╼ git diff
diff --git a/init.el b/init.el
index 0bb503b..43dafa5 100644
--- a/init.el
+++ b/init.el
@@ -1359,3 +1359,4 @@ can be used to add a number of spaces to the front and back of the string."
     )

 (add-hook 'after-save-hook 'byte-compile-current-buffer)
+some

Что это получается, что я внес изменения в ветке compile и эти изменения кочуют из ветки в ветку?

★★★★

Ага, ты такой сделал git checkout branch_name и сидишь такой и думаешь, что ты сидишь в изолированной ветке. А на самом деле ты переключил в гите ветку, а сидишь в файловой системе, файлы которой, - общие для всех веток

bryak ★★★★ ()
Ответ на: комментарий от bryak

Во-первых, такое поведение описано в документации. Если кто-то читал документацию попой, это его проблемы. Во-вторых, у такого подхода есть очевидный rationale — сейчас, если ты начнёшь вносить изменения в одну ветку, и при коммите увидишь, что не в ту, то просто переключаешься и коммитишь. А вариант, где checkout сохраняет состояние дерева предыдущей ветки мало того, что требует какого-никакого, но лишнего места, так ещё и потребует кучи действий от программиста в такой ситуации с промахом ветки, причём не давая никаких плюшек взамен.

gremlin_the_red ★★ ()
Ответ на: комментарий от gremlin_the_red

А вариант, где checkout сохраняет состояние дерева предыдущей ветки мало того, что требует какого-никакого, но лишнего места, так ещё и

Вроде, наоборот: есть такой себе git на макросах https://gitless.com/

Independent branches

Branches in Gitless include your working changes, so you can switch between branches without having to worry about conflicting uncommitted changes

gag ★★★★★ ()

(Я б тебя забанил только за клоунский prompt. Просишь помощи - изволь лаконично описать проблему без этого говна).

А так да, никаких изменений ни а какую ветку ты не внёс. То что git позволяет переключить ветку при наличии незаstageных изменений очень удобно (потому что можно внести их как в текущую ветку, так и предварительно переключиться на другую) но позволяет он это только до тех пор пока файл не меняется между ветками.

slovazap ★★★★★ ()
Ответ на: комментарий от slovazap

за клоунский prompt

Мельник на ослике ехал верхом.
Мальчик за мельником плёлся пешком.
– Глянь-ка, – толкует досужий народ,
Дедушка едет, А мальчик идёт!
Где это видано? Где это слыхано? –
Дедушка едет, А мальчик идёт!
Дедушка быстро слезает с седла,
Внука сажает верхом на осла.
– Ишь ты! – вдогонку кричит пешеход. –
Маленький едет, а старый идёт!
Где это видано? Где это слыхано? –
Маленький едет, а старый идёт!
Мельник и мальчик садятся вдвоем –
Оба на ослике едут верхом.
– Фу ты! Смеется другой пешеход. –
Деда и внука скотина везёт!
Где это видано? Где это слыхано?
Деда и внука скотина везёт!
Дедушка с внуком плетутся пешком,
Ослик на дедушке едет верхом.
– Тьфу ты! – Хохочет народ у ворот. –
Старый осёл молодого везёт!
Где это видано? Где это слыхано? –
Старый осёл молодого везёт!
bryak ★★★★ ()
Последнее исправление: bryak (всего исправлений: 2)