я пошел через чтение кучу вещей на SO и в документации Git, и заметил что-то, после того, как Мессинг вокруг, что я не совсем понимаю:Git не перебазироваться нет версии аргумент против один аргумент версии
Скажем, я имеют следующее состояние и конфигурацию после выборки, этап 2 в мерзавца тяги, и принудительное обновление произошло на происхождения/мастера:
$ git log -2 --oneline
a589c89 foo2
e0e5946 foo
$ git log -2 --oneline origin/master
e0e5946 foo
$ git config branch.master.remote
origin
$ git config branch.master.rebase
true
$ git config branch.master.merge
refs/heads/master
Док говорит (https://www.kernel.org/pub/software/scm/git/docs/git-rebase.html)
If <branch> is specified, git rebase will perform an automatic git
checkout <branch> before doing anything else. Otherwise it remains on
the current branch.
If <upstream> is not specified, the upstream configured in
branch.<name>.remote and branch.<name>.merge options will be used
Когда я указываю единственный вариант аргумент мерзавца перебазироваться это происходит:
$ git rebase origin/master
Pruned remote csv test branches
Successfully rebased and updated refs/heads/master.
$ git log -2 --oneline
a589c89 foo2
e0e5946 foo
Круто, foo2 до сих пор существует в моем местном отделении, как и ожидалось. Теперь, делая это, это должно быть одно и то же (неявно), потому что согласно документам, branch.master.remote и branch.master.merge разрешаются как начало/мастер, как показано выше, если я не интерпретирую ошибки:
$ git rebase
Pruned remote csv test branches
Successfully rebased and updated refs/heads/master.
$ git log -2 --oneline
e0e5946 foo
За исключением foo2 теряется, и мы должны сделать git reset --hard [email protected]{2}
для восстановления. На самом деле этого не ожидал. Любая идея, почему у меня другое поведение здесь? И как я могу предотвратить предотвращение потери foo2 в процессе без переключение branch.master.rebase на false? Я собираюсь сделать попытку сделать перестановку.