Как я могу согласовать отдельную ГОЛОВКУ с мастером / происхождением? - PullRequest
1436 голосов
/ 24 апреля 2011

Я новичок в ветвящихся сложностях Git.Я всегда работаю над одной веткой и фиксирую изменения, а затем периодически нажимаю на мое удаленное начало.

Где-то недавно я выполнил сброс некоторых файлов, чтобы вывести их из стадии фиксации, а позже сделал rebase -iчтобы избавиться от пары недавних местных коммитов.Сейчас я нахожусь в состоянии, которое я не совсем понимаю.

В моей рабочей зоне git log показывает именно то, что я ожидал - я на правильном поезде с коммитами, которых я не делал.не хочу уйти, и новые там и т. д.

Но я только что отправил в удаленный репозиторий, и что там другого - пару коммитов, которые я убил в ребазе, выдвинули, иновых, совершенных локально, там нет.

Я думаю, что "master / origin" отделен от HEAD, но я не на 100% уверен в том, что это значит, как визуализировать его с помощью инструментов командной строки и как это исправить.

Ответы [ 26 ]

0 голосов
/ 03 июня 2016
git checkout checksum  # You could use this to peek previous checkpoints
git status # You will see HEAD detached at checksum
git checkout master # This moves HEAD to master branch
0 голосов
/ 05 ноября 2018

У меня была такая же проблема. Я прячу свои изменения с git stash и принудительно сбросил ветку local для предыдущего коммита (я думал, что это вызвало это), затем сделал git pull, и сейчас я не отрываю эту голову. Не забудьте git stash apply, чтобы ваши изменения снова.

0 голосов
/ 18 октября 2013

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

git ls-remote origin
0d2ab882d0dd5a6db93d7ed77a5a0d7b258a5e1b        HEAD
6f96ad0f97ee832ee16007d865aac9af847c1ef6        refs/heads/HEAD
0d2ab882d0dd5a6db93d7ed77a5a0d7b258a5e1b        refs/heads/master

, который я в итоге исправил с помощью

git push origin :HEAD
0 голосов
/ 24 августа 2017

Это отлично сработало для меня:

1. git stash для сохранения локальных изменений

Если вы хотите отменить изменения
git clean -df
git checkout -- .
git clean удаляет все неотслеживаемые файлы (предупреждение: хотя он не удаляет проигнорированные файлы, упомянутые непосредственно в .gitignore, он может удалять игнорируемые файлы, находящиеся в папках), а git checkout очищает все неотмеченные изменения.

2. git checkout master для переключения на основную ветвь (при условии, что вы хотите использовать master)
3. git pull для извлечения последнего коммита из ветки master
4. git status для проверкивсе выглядит отлично

On branch master
Your branch is up-to-date with 'origin/master'.
0 голосов
/ 29 июля 2017

Если вы используете EGit в Eclipse: Предположим, ваш мастер - ваша основная ветка разработки

  • фиксирует изменения в ветке, обычно новой
  • затем вытащить с пульта
  • затем щелкните правой кнопкой мыши узел проекта, выберите команду, затем выберите Показать историю
  • затем щелкните правой кнопкой мыши мастер, выберите проверить
  • если Eclipse сообщает вам, есть два мастера, один локальный, один удаленный, выберите пульт

После этого вы сможете снова подключиться к координатору оригинала.

0 голосов
/ 19 июня 2015

В моем случае я запустил git status и увидел, что у меня в рабочем каталоге есть несколько неотслеживаемых файлов.

Чтобы заставить работать rebase, мне просто пришлось их очистить (так как я нене нужны).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...