Исходная функция SourceTree с ребазой - эквивалент CLI - PullRequest
0 голосов
/ 23 декабря 2018

Я уже некоторое время использую SourceTree для выполнения всех GitFlow операций, включая закрытие feature ветвей.

Теперь я хотел бы лучше понятькак выполнять некоторые операции через git CLI.

В частности, я не понял, что было бы CLI-эквивалентом закрытия функции, также выбрав опцию rebase, как показано на рисунке ниже.

enter image description here

Я пробовал объединить, но это не воспроизводит весь процесс, какой будет команда CLI для выполнения той же операции, что и SourceTree?

1 Ответ

0 голосов
/ 23 декабря 2018

Исходные предложения командной строки, из которых получено большинство инструментов GitFlow, можно найти в исходной статье блога здесь:

https://nvie.com/posts/a-successful-git-branching-model/#incorporating-a-finished-feature-on-develop

Закрытие ветви функции состоит из следующегошаги:

$ git checkout develop
Switched to branch 'develop'
$ git merge --no-ff myfeature
Updating ea1b82a..05e9557
(Summary of changes)
$ git branch -d myfeature
Deleted branch myfeature (was 05e9557).
$ git push origin develop

Опция флажка в SourceTree, вероятно, делает один дополнительный шаг, который перемещает текущую функциональную ветвь в заголовок развивающейся ветви перед слиянием.Если вы не знакомы с операцией git rebase, я бы посоветовал вам сначала прочитать об этом здесь:

https://git -scm.com / docs / git-rebase

ПРИМЕЧАНИЕ: Хотя операция перебазирования является совершенно нормальным рабочим процессом, которым я следую, я использую его почти ежедневно, это может вызвать проблемы, если вы просто используете его впервые, особенно если возникают конфликтымежду веткой компонентов, над которой вы работаете, и тем, что находится в ветви разработки.Я бы рекомендовал вам в отдельности попробовать следующее, чтобы привыкнуть к происходящему.

Итак, глядя на «нормальное» завершение рабочего процесса функции сверху, вы бы сделали что-то вроде следующего:

$ git checkout myfeature
Switched to branch 'myfeature'
$ git rebase develop
Replay commits from myfeature branch onto the head of the current develop branch
$ git checkout develop
Switched to branch 'develop'
$ git merge --no-ff myfeature
Updating ea1b82a..05e9557
(Summary of changes)
$ git branch -d myfeature
Deleted branch myfeature (was 05e9557).
$ git push origin develop

Если вы посмотрите историю своего git-репозитория до и после операции rebase, то, надеюсь, вы должны почувствовать, что происходит.Если вы все еще не уверены, вы можете использовать что-то вроде следующего:

http://git -school.github.io / visualizing-git

, который поможетвизуализировать происходящие операции git.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...