Псевдоним для синхронизации ветки объекта с веткой "разработка"
Я провел несколько поисков и нашел этот псевдоним, чтобы синхронизировать ветку функций с ветвью разработки, которая работает, когда я запускаю из Git bash вручную.
sync='!f() { echo Syncing this branch with develop && git checkout develop &&
git pull && git checkout – && git rebase develop; }; f'
Я попытался поместить этот псевдоним в.gitconfig, однако я получаю следующую ошибку
error: pathspec '"\342\200\223"' did not match any file(s) known to git.
я обнаружил, что это git checkout, то есть возврат к последней ветке, в которой вы были, создает эту ошибку.
Я также попытался поместить ту же команду в.bashrc, как показано ниже
alias sync='echo Syncing this branch with develop && git checkout develop && git pull
&& git checkout – && git rebase develop'
который создает ту же ошибку.
Однако, чтобы убедиться, что когда я запускаю все команды в Git Bash вручную, все они работают нормально, других проблем не возникает. Кажется, это только из-за различий в msysgit или bash для Windows, так как я прочитал эти псевдонимы для git на Mac и Linux.
Может ли какой-то просвещенный ум сказать мне, как изменить его, чтобы он работал на Windows?
Спасибо
1 ответ
\342\200\223
является восьмеричной последовательностью символов, представляющей символ "en dash" UTF-8: восьмеричный 342 200 223
такой же, как гекс e2 80 93
, Вы, вероятно, скопировали / вставили эту командную строку откуда-то, и этот символ дует git
разум. Используйте ASCII -
,
То есть этот персонаж: –
и этот: -
не то же самое. Вы должны использовать последний.
Вы можете проверить, запустив персонажа через вашу любимую программу шестнадцатеричного дампа. Вот мой пример:
$ echo -n – | hexdump
0000000 e2 80 93
0000003
$ echo -n - | hexdump
0000000 2d
0000001