Я пытаюсь создать сценарий, который упростит некоторые общие задачи с Git. Среди прочего, сценарий должен иметь возможность определять имя текущей ветви. Это отлично работает, если пользователь уже что-то внес в репозиторий, но я не могу понять, как это сделать, если пользователь еще ничего не добавил. Например, в пустой папке:Как определить название ветки до первоначальной фиксации?
git init
git checkout -b work
Теперь я хотел бы, чтобы определить имя текущей ветви: (Так что ожидаемый результат будет work
)
git branch
не дает никакого вывода. Принимая во внимание:
git checkout work
дает
error: pathspec 'work' did not match any file(s) known to git.
и
git rev-parse --abbrev-ref HEAD
дает выход:
HEAD
fatal: ambiguous argument 'HEAD': unknown revision or path not in the
working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Однако
cat .git/HEAD
дает мне:
ref: refs/heads/work
, но это, кажется, немного, как взломать (выглядывает в отдельный каталог .git
). Есть ли какой-либо переносной способ определения имени ветки, когда пользователь ничего не совершил?
Отлично!Вы также можете получить точное название ветки, указав опцию '--short'. –