Git: Как я могу изменить коммит сервера? - PullRequest
8 голосов
/ 19 октября 2011

Я уже отправил некоторые коммиты на мой git-сервер на EC2, а не на github.

Как я могу изменить эти коммиты на git-сервере?

Операция, такая как удаление коммитов, например перебазировка, измени сообщение коммита

Возможно ли это?

Большое спасибо.

Ответы [ 2 ]

9 голосов
/ 19 октября 2011

Вы можете делать практически все, используя принудительный толчок.Измените ваше локальное дерево на то, что вы хотите, и git push -f, и оно заменит дерево на сервере тем, что у вас есть локально.Стоит отметить, что это вызовет проблемы с любыми другими репозиториями, которые тянут дерево, которое вы только что заменили.

7 голосов
/ 19 октября 2011

Если вы хотите деструктивно редактировать историю удаленной ветви (например, rebase / amend), внесите свои изменения локально, а затем выполните git push --force.Иногда это не работает (администраторы хранилища могут отключить эту функцию);в этом случае вы можете попробовать удалить удаленную ветку с помощью git push origin :my_branch, а затем снова нажать ее с помощью git push origin my_branch.В противном случае вы можете использовать git revert, что является рекомендуемым способом, если вы работаете в команде (практическое правило гласит, что опубликованную историю не следует изменять).

Вот пример (использование этого Githubрепозиторий ):

$ touch SOMETHING
$ emacs SOMETHING 
$ git add SOMETHING 
$ git ci -m SOMETHING
[master d14aaa0] SOMETHING
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 SOMETHING
$ git push
Counting objects: 8, done.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (6/6), 611 bytes, done.
Total 6 (delta 3), reused 0 (delta 0)
To git@github.com:23Skidoo/ghc-parmake.git
   53f836a..d14aaa0  master -> master
$ git reset --hard "HEAD~"
HEAD is now at 7b2dc96 TODO update.
$ git push --force
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:23Skidoo/ghc-parmake.git
 + d14aaa0...7b2dc96 master -> master (forced update)

Глядя на историю коммитов , вы можете видеть, что коммит d14aaa0 отсутствует.

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