git - выдвигает только самый верхний коммит на сервер - PullRequest
1 голос
/ 01 июня 2011

У меня есть ситуация, когда я:

(1) Слил патч пользователя X
(2) Внес некоторые изменения в другой код и зафиксировал.

Теперь я хочуподтолкнуть мой коммит на сервер.Однако, когда я делаю

git push origin HEAD:refs/for/mybranch

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

Ответы [ 3 ]

1 голос
/ 01 июня 2011

Вторая редакция:

git reset --soft HEAD^ (to undo your commit)
git stash (to stash away your changes)
git reset --soft HEAD^ (to undo the merge commit from X)
git stash (stash away X)
git stash apply stash@{1} (apply your changes)
git add . (add and commit and push ..)
git commit -m "some changes"
git push
git stash apply stash@{0}

Исправленный ответ:

Хорошо, тогда вам нужно сбросить еще один шаг назад в истории:

git reset --soft HEAD^ (to undo your commit)
git stash (to stash away your changes)
git reset --hard HEAD^ (to undo the merge commit from X)
git stash apply (apply your changes)
git add . (add and commit and push ..)
git commit -m "some changes"
git push
git merge featureX (re merge the changes from X)

Оригинальный ответ:

Вы можете сбросить свою голову, чтобы ваш коммит был перемещен в индекс:

git reset --soft HEAD^

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

git stash save "stashing commit for changes from X"

Теперь вы можете сдвинуть объединенные изменения из X и после этого применить тайник, добавить и зафиксировать:

git push
git stash apply
git add .
git commit -m "some stuff"
0 голосов
/ 02 июня 2011

Похоже, что в репозитории есть некоторые настройки хуков, которые не позволяют вам выдвигать любые коммиты, в которых вы не являетесь автором / коммитером.

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

0 голосов
/ 01 июня 2011

Почему бы просто не зафиксировать патч, а затем преобразовать ваши "изменения в какой-то другой код" отдельно? Git говорит правду, вы не автор патча, а "пользователь X".

Кроме того, есть ли причина, по которой вы выполняете эту команду:

git push origin HEAD:refs/for/mybranch

вместо

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