Git слить путаницу. Diff показывает различия, а слияние говорит, что их нет - PullRequest
1 голос
/ 10 сентября 2009

Я начинаю учиться использовать git, и у меня возникла ситуация, которую я не понимаю (хранилище было извлечено из SVN)

Я на ветке jacob@379 со всем совершенным:

host$ git status
# On branch jacob@379
nothing to commit (working directory clean)

Попробуйте сделать слияние с мастером:

host:$ git merge master
Already up-to-date.

Что сбивает с толку, потому что разница говорит, что есть различия!

host$ git diff master..jacob@379
warning: refname 'jacob@379' is ambiguous.
diff --git a/.classpath b/.classpath
index 8ba1225..5af1151 100644
--- a/.classpath
+++ b/.classpath
@@ -10,6 +10,11 @@
....

Что происходит?

Ответы [ 2 ]

3 голосов
/ 11 сентября 2009

Возможно, что нет ничего нового для слияния, но ваша ветка содержит изменения не в master. Такие различия также будут отражены в коммитах, поэтому вы можете просто проверить логи:

# See what's in my branch but not master
git log master..jacob@379

# See what's in master but not my branch
git log jacob@379..master

Полагаю, вы увидите там некоторые коммиты. Представь себе это так:

o---o---A---B---C      master
         \       \
          ----D---E---F   jacob@379

В этом случае нет ничего нового для слияния с jacob@379, но две ветви все еще совершенно различны.

Беглый взгляд на gitk --all, вероятно, был бы действительно полезен здесь.

1 голос
/ 10 сентября 2009

Я думаю, что проблема здесь:

warning: refname 'jacob@379' is ambiguous.

попробуйте ГОЛОВУ вместо Джейкоба @ 379

Но, тем не менее, вероятно, нужно получить однозначное название ветви. Я думаю, что @ имеет особое значение. Или, может быть, у вас есть тег или другой реф с тем же именем?

Также здорово открыть графическую программу, которая показывает вам все теги и ветви, и все это со строками. Если у вас есть, попробуйте: gitk --all

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