Git 'revert' в master удаляет файлы ветки, если они объединены или переустановлены

Вопрос:

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

Я хотел добавить foo, bar и baz в репозиторий проекта. По некоторым причинам (потому что я идиот), я сделал следующий беспорядок (где “-xxx_commit” является git-revert из “+ xxx-commit”):

foo_branch
+foo_commit 1

bar_branch
+foo_commit 1
+bar_commit 2
-foo_commit 3

baz_branch
+foo_commit 1
+bar_commit 2
-foo_commit 3
-bar_commit 4
+baz_commit 5

Затем foo_branch и baz_branch были объединены в восходящем репозитории… Поэтому:

upstream/master
+foo_commit 1
+foo_commit 1
+bar_commit 2
-foo_commit 3
-bar_commit 4
+baz_commit 5

Итак, теперь foo был добавлен, а затем удален, и я не могу объединить или переустановить upstream/master из bar_branch потому что он возвращается сам…

У вас есть идея очистить этот беспорядок? Есть ли команда git-idiot или что-то в этом роде?

Лучший ответ:

Как насчет возврата, в главном -foo_commit 3 и -bar_commit 4 (реверты foo и bar), чтобы вернуться к foo и bar? Вы должны закончить с помощью foo, baz и bar в своем репо. Вот пример примера ситуации (если я правильно понял):

[email protected]: /tmp/git-test (master)
> git history 
*   a3ca029  (HEAD, master) - Merge branch 'baz_branch' (2 seconds ago) 
|\  
| * db33181  (baz_branch) - baz_commit (17 seconds ago) 
| * 618b704  - Revert "bar_commit" (32 seconds ago) 
| * 672b77c  (bar_branch) - Revert "foo commit" (51 seconds ago) 
| * 06230db  - bar_commit (62 seconds ago) 
* |   90ba017  - Merge branch 'foo_branch' (7 seconds ago) 
|\ \  
| |/  
| * 60ea014  (foo_branch) - foo commit (79 seconds ago) 
|/  
* 0b863fe  - initial (4 minutes ago) 
[email protected]: /tmp/git-test (master)
> git merge --no-ff bar_branch 
Already up-to-date.
[email protected]: /tmp/git-test (master)
> ll
total 0
-rw-r--r-- 1 ghislain fuse 0 Jul 23 15:18 baz
-rw-r--r-- 1 ghislain fuse 0 Jul 23 15:14 README
[email protected]: /tmp/git-test (master)
> git revert 672b77c 618b704
[master 88af7cd] Revert "Revert "foo commit""
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 foo
:[master d2cf0a3] Revert "Revert "bar_commit""
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 bar
[email protected]: /tmp/git-test (master)
> ll
total 0
-rw-r--r-- 1 ghislain fuse 0 Jul 23 16:37 bar
-rw-r--r-- 1 ghislain fuse 0 Jul 23 15:18 baz
-rw-r--r-- 1 ghislain fuse 0 Jul 23 16:37 foo
-rw-r--r-- 1 ghislain fuse 0 Jul 23 15:14 README

Оцените статью
TechArks.Ru
Добавить комментарий