Git Merge X отчеты в актуальном состоянии - PullRequest
1 голос
/ 14 ноября 2010

У меня есть удаленный репозиторий на UNC \ foobar \ Git \ MKWF.gif

У меня есть два локальных клона, первый используется для нормальной разработки, поэтому он действительно имеет две ветви: track, master и stable.,Разработка выполняется в мастере, затем объединяется в стабильную.

Стабильной является ветвь, все остальные ветки отрываются.Это базовый веб-фреймворк, используемый для ряда сайтов.

Второй клон - это специфический для сайта X.com

, поэтому X.com отслеживает основной, стабильный и новый филиал X

обычно я работаю в первом репозитории над общими вещами, сливаюсь в стабильный, когда готов, затем git push --all, чтобы переместить изменения на сервер.

в клоне X.com, который я делаю:

git checkout stable
git pull --all 

это дает мне последние изменения с сервера, тогда я могу сделать

git checkout X
git merge stable

, чтобы переместить эти обновления в специальную ветку для X.com

это перестало работать

Я сделал тянуть, я вижу файлы в проводнике Windows. Затем я делаю

git checkout X
git merge stable

, все файлы исчезли, и объединение отчетов "его обновление"

может кто-нибудь осветит проблему?git branch -a выводит список всех локальных и удаленных веток.

git status ничего не сообщает.Почему мои файлы не там ...

1 Ответ

0 голосов
/ 21 марта 2011

Вы, вероятно, случайно

  1. объединены
  2. отменены локальные изменения
  3. зафиксировали, что

Оставшаяся (потенциально пустая) фиксация будетвсе еще будет помечен как коммит слияния, что означает, что у него будет два родителя (предыдущий коммит X и вершина конюшни во время слияния).

Затем вы обнаружите, что выНа самом деле новые файлы не были объединены (это означает, что вы не передали их должным образом).Любая попытка сделать слияние снова обманет git, потому что он может ясно видеть, что последняя ревизия уже является прямым потомком tiprevision стабильной версии.Это означает, что в не должно быть . Осталось никакой работы.

Что git делает, чтобы выяснить начальную точку слияния, это 'git merge-base X stable', так что вы можете проверить это,(Вы, вероятно, все еще можете, просмотрев ревизии, все еще находящиеся в reflog для X [1]).

В следующий раз, когда у вас возникнут сомнения, просмотрите

 git show-branch X stable

для визуальной проверки ситуации или

 git log X..stable

и

git log --graph --cherry-pick --oneline --left-right --boundary X...stable

Для получения более подробной информации.

[1] Например,

git rev-list -g HEAD --parents
git rev-list -g HEAD --children

для поиска точки слияния

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