Нет пультов/происхождения/HEAD с gitlab

Я новичок в git, но я играл с ним на удаленном сервере, который я настроил, и я почти уверен, что понимаю основы.

Я только что настроил gitlab и отправил часть своего кода в новый проект. Я сделал следующее:

  1. Получить весь мой код в каталоге
  2. git инициировать
  3. git добавить .
  4. git commit -m "Первоначальная фиксация"
  5. мастер происхождения git push

Где происхождение было настроено с помощью:

git remote add origin [email protected]:myproject.git

Теперь, когда я делаю git branch -a, я вижу:

* master
  remotes/origin/master

Принимая во внимание, что когда я играл раньше, я всегда видел:

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

Я понимаю, что голова является указателем на проверенную в данный момент ветку, поэтому не должна ли она существовать в начале? Почему не создали?


person Cameron Ball    schedule 28.11.2012    source источник


Ответы (3)


Не беспокойтесь об этом удаленном HEAD. Эта строка является просто артефактом того, как работает оригинальный клон, и представляет состояние удаленного HEAD.

Его можно рассматривать как ветку по умолчанию, предпочитаемую сервером (даже в удаленном голом репозитории) — она будет извлечена вашим клиентом git clone по умолчанию, если опция -b branch не использовалась.

Ваш локальный файл .git/refs/remotes/origin/HEAD, вероятно, теперь содержит строку ref: refs/remotes/origin/master. Вы можете удалить его, если хотите (не то, чтобы я рекомендовал это делать, заметьте), и git branch -a больше не будет его показывать.

За исключением этого использования удаленной HEAD в качестве ветки по умолчанию для первого клона, для вас состояние удаленной HEAD никогда не имеет значения. Вам следует беспокоиться только о состоянии реальных удаленных ветвей, а не об удаленных HEAD, поскольку это имеет смысл только для удаленного состояния в качестве выбранной по умолчанию ветки. А если удалённый репозиторий голый, то даже на удалённом нет особого смысла.

И причина, по которой вы не видели удаленный HEAD, когда делали git remote add ..., git fetch, git pull, заключается в том, что в этом случае git не нужно было принимать решение о том, какую удаленную ветку по умолчанию выбрать по умолчанию.

person mvp    schedule 28.11.2012

Вы можете установить его с помощью команды git remote set-head origin -a, которая автоматически устанавливает origin/HEAD так, чтобы он указывал на соответствующую удаленную ветку. Или используя git remote set-head origin <branch>, чтобы указать удаленную ветку для точки.

Также см.: https://stackoverflow.com/a/8841024/1851492

person allenyllee    schedule 28.08.2018

Я решаю свою проблему таким образом

  1. Сначала удалите индексный файл в папке .git.
  2. Затем откройте терминал и введите git reset
person moshfiqrony    schedule 04.10.2020