Мы используем Feature-Branch-Workflow, что означает, что другие объединяют свои изменения с dev-веткой, которую я хочу объединить со своей функциональной веткой. Поскольку это часто случается, я хотел бы иметь простой псевдоним git, который делает:
devЯ хочу выполнить слияние самостоятельно, так как иногда изменения блокируют оформление заказа или могут произойти сбои.
Мое текущее состояние:
[alias]
pull-and-back = !git checkout $1 && git pull && git checkout @{-1}
что, к сожалению, дает ошибку error: pathspec 'dev' did not match any file(s) known to git.
Что происходит не так? Я предполагаю, что восклицательный знак заставляет команду интерпретироваться как код bash, последняя часть @{-1} оценивается не git, а bash.
Или, что еще лучше, git fetch origin, а затем, например, git merge origin/dev. Вам вообще не нужно собственное dev название ветки!
Интересные идеи, напоминает мне, что я никогда по-настоящему не понимал и не использовал git fetch. Насколько я понимаю, это загружает удаленные коммиты из ветки dev, но не объединяет их в мою локальную ветку dev. Это дало бы мне возможность объединить удаленную ветку отдельно с локальной функциональной веткой или локальной веткой dev. Я понимаю, как это увеличивает производительность, однако мне нужно помнить, что мне нужно merge или pulldev перед его использованием. Звучит как большой источник путаницы для меня.





Вам нужно будет использовать специальную функцию bash для передачи вашего параметра:
git config alias.pab '!f() { git checkout $1 && git pull && git checkout -; }; f'
Обратите внимание, что git checkout - — это удобный ярлык для git checkout @{-1}, но оба работают.
Почему бы не просто
git fetch dev:devвместо двух медленных касс?