2012-06-26 3 views
5

У меня есть git repo, и я просто нажал его на сервер. Затем я устанавливаю крюк post-receive на сервере. Я хочу проверить, работает ли он. Я должен снова повторить, чтобы увидеть, работает ли это? Я бы очень хотел просто заставить толчок, пока я пытаюсь получить эту настройку, а не продолжать делать коммиты, которые не имеют реальной ценности. Это не работает, и я просто не понимаю.Нажатие без фиксации

$ git push --force origin master 
Everything up-to-date 
+0

В частности, для страниц GitHub на fork: http://stackoverflow.com/questions/8587321/github-pages-in-forked-repo –

ответ

5

Чтобы достичь этого, необходимо нажать старшую фиксацию. Например, вы можете нажать фиксации прямо перед текущей ГОЛОВОЙ используя этот комментарий:

git push --force origin HEAD^:master 

После этого вы можете нажать ГОЛОВУ совершить еще раз:

git push origin master 

Однако, вместо того, толкая все время считаем вызывая крючок вручную. Это обычно проще - но не забудьте проверить с фактическим нажатием, когда вы думаете, что все работает, чтобы быть уверенным.

+0

Вы могли бы прояснить ситуацию с крючком? Или указать на какое-то руководство –

2

Там немного грязный трюк вы можете использовать:

git stash save && git push --force origin "[email protected]{0}:master" && git stash pop 

Это делает 3 вещи:

  1. Stash текущие неподтвержденные изменения. Stashing создает новую фиксацию, но на отдельном реф. Это не загрязнит вашу историю. Кроме того, он очищает рабочий каталог от изменений. См. Шаг 3.
  2. Нажмите на скрытый код
  3. Pop the stash - очистка приставки и размещение всех файлов в вашем рабочем каталоге.

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

Смежные вопросы