Git фиксирует и ссылается на заголовки - PullRequest
0 голосов
/ 28 ноября 2018

Существуют ссылочные заголовки для коммитов git, которые сами по себе являются отдельными коммитами.Например, есть два коммита, скажем 925ca878bc3c6c264ba5335b39be762a39e462ec и 035d1c4e0d4be18bf8f46150072d1c4e0d4.

Когда я делаю git show-ref --heads --tags, я получаю

925ca878bc3c6c264ba5335b39be762a39e462ec refs/heads/035d1c4e0d4be18bf8f46150072d1c4e0d4

1afff830dc0611c924d3bdaf490b0378dd4f2444 refs/heads/4d04fde758564386fb5d6922a1d4f01970e4e050

925ca878bc3c6c264ba5335b39be762a39e462ec refs/heads/af76057dea6c0f395fa2eada0e45dd8c01a4aea6

Так что теперь после проверки на 925ca878bc3c6c264ba5335b39be762a39e462ec, если я пытаюсь оформить 035d1c4e0d4be18bf8f46150072d1c4e0d4, я получаю

warning: refname '035d1c4e0d4be18bf8f46150072d1c4e0d4' is ambiguous.

Я уже использую две команды rm -f .git/index.lock и git branch -D $(git branch --merged | grep -v \* | xargs) (в идеале, они должны иметь дело с проблемой ветвления) перед каждым отдельным коммитом.

Есть ли обходной путь?Я не сталкивался с этим раньше, поэтому я не уверен, что именно происходит.

1 Ответ

0 голосов
/ 28 ноября 2018

У вас есть ветки с длинными шестнадцатеричными именами, что странно.Если вы запустите git branch, вы должны увидеть что-то вроде этого.

035d1c4e0d4be18bf8f46150072d1c4e0d4
4d04fde758564386fb5d6922a1d4f01970e4e050
af76057dea6c0f395fa2eada0e45dd8c01a4aea6

Предположительно, есть коммит с идентификатором 035d1c4e0d4be18bf8f46150072d1c4e0d4.

Если это умышленно, это нехорошая идея по причинам, которые вы только что обнаружили.Если вы должны это сделать, устраните неоднозначность имени ветки с префиксом вроде branch/035d1c4e0d4be18bf8f46150072d1c4e0d4.

Если это ошибка, то вы как-то создаете ветки, используя идентификаторы коммитов в качестве имени.Возможно, у вас есть синтаксис git branch в обратном направлении.Это должно быть так.

git branch <name> <branch from>

Создание ветки из коммита 035d1c4e0d4be18bf8f46150072d1c4e0d4 будет

git branch thename 035d1c4e0d4be18bf8f46150072d1c4e0d4

Возможно, вы делаете

git branch 035d1c4e0d4be18bf8f46150072d1c4e0d4 035d1c4e0d4be18bf8f46150072d1c4e0d4

Или даже просто

git branch <the current commit>

Возможно, это в каком-то сценарии где-то

git branch $(git rev-parse HEAD)
...