Не удается отправить коммиты из подмодуля git? - PullRequest
24 голосов
/ 15 декабря 2010

У меня есть простой проект с одним подмодулем.

$ git submodule
 964737623a362f6303e87ec41f2c7090c8c2c093 lib/mongodb-php-odm (heads/master-1-g9647376)

Я внес изменения в этот подмодуль и зафиксировал их, но не могу отправить их на github.

$ cd lib/mongodb-php-odm
$ git branch
* (no branch)
  master
$ git remote -v
origin  git@github.com:colinmollenhour/mongodb-php-odm.git
$ git ls-remote .
964737623a362f6303e87ec41f2c7090c8c2c093    HEAD
6f5f91eff9b1854faa30608f335aee92aa7532eb    refs/heads/master
6f5f91eff9b1854faa30608f335aee92aa7532eb    refs/remotes/origin/HEAD
6f5f91eff9b1854faa30608f335aee92aa7532eb    refs/remotes/origin/master
$ git push origin master
Everything up-to-date

Я не понимаю, почему в нем написано «Все актуально», потому что коммит 964737 не был передан в github. Скорее всего, я сделал что-то не так, но я понятия не имею, что это будет ..

Как мне отправить последний коммит в этом подмодуле на github?

Ответы [ 2 ]

15 голосов
/ 15 декабря 2010

Кажется, что вы зафиксировали ни одну ветку, т. Е. Ваша фиксация не является частью какой-либо ветви.Создайте ветку, в которой вы стоите, затем запустите gitk для сравнения с master, затем cherry-pick или rebase, если необходимо.

7 голосов
/ 23 августа 2014

@ ColinM, я думаю, вы должны переместить свой комментарий к ответу, потому что это полное решение, которое помогло мне решить точно такую ​​же проблему! Спасибо - Хуан Карлос Морено

Я сделаю это здесь.

Как сказал Схеффер, вы делаете коммит "без головы". Как сказал ColinM, вы можете объединить этот коммит обратно в master следующим образом:

cd lib/mongodb-php-odm
git checkout master
git merge HEAD@{1}
git push origin master

РЕДАКТИРОВАТЬ: Использование HEAD@{1} вместо временной ветви или тега проще, так как очистка не требуется. Выражение HEAD@{1} означает предыдущее значение HEAD, которое в этом случае будет новым коммитом на ветви без заголовка.

...