LINUX.ORG.RU

git push в старый коммит

 


0

2

привет всем. подскажите новичку, что я делаю не так. пытаюсь с удаленного сервера забрать проект, изменить кое-то и в тот же коммит добавить эти изменения и отправить на сервак. пытаюсь сделать push на удаленный сервер коммита, который я закоммитил как --amend.

делаю так: 1. git clone ... 2. edit 3. git add ... 4. git commit --amend 5. git pull 6. git push и на 6 пукте вечно ошибка: ! [rejected] master -> master (non-fast-forward)

error: failed to push some refs to 'ssh://user@192.168..../...'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again.  See the 'Note about
fast-forwards' section of 'git push --help' for details.

Добавлю, что правила хорошего тона запрещают изменять то, что уже заpushено на сервер. За тем исключением, когда у сервера только один пользователь.

Jurik_Phys ★★★★★
()
Ответ на: комментарий от kabanchik

Коммитишь сколько душе угодно в свою ветку. Когда дошёл до логического завершения этапа, можно отредактировать историю коммитов см. rebase, после чего объединить с основной веткой и это объединение запушить на сервер. Как-то так. Во всяком случае частый коммит безвреден, а редактирование существующих коммитов - может привести к неприятным последствиям.

Jurik_Phys ★★★★★
()
Ответ на: комментарий от Jurik_Phys

Коммитишь сколько душе угодно в свою ветку.

А если нужен доступ к своей ветке из нескольких мест, тогда нужно ветку заводить на сервере? И как в ней безопасно редактировать историю?

kamre ★★★
()
Ответ на: комментарий от kabanchik

но и коммитить миллиен раз - тоже плохой тон

Я что-то даже и сказать-то не знаю что.

false ★★★★★
()
Ответ на: комментарий от dmitry_malikov

Читаем внимательно топик: ТС запушил коммит на сервер, потом локально его изменил с помощью --amend, потом принудительно запушил на сервер. Что будет в дальнейшем у товарища, который скачал превоначальную версию коммита и начал с этого момента работать, опять же пушить в ветку?

Jurik_Phys ★★★★★
()
Последнее исправление: Jurik_Phys (всего исправлений: 1)
Ответ на: комментарий от Jurik_Phys

первоначальную версию коммита
первоначальную версию коммита
первоначальную версию коммита
первоначальную версию коммита

dmitry_malikov ★★
()
Ответ на: комментарий от buddhist

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

dmitry_malikov ★★
()
Ответ на: комментарий от kabanchik

я понимаю, но и коммитить миллиен раз - тоже плохой тон

Торвальдс так не считает. Он считает что редкие коммиты зло.

quest ★★★★
()
Последнее исправление: quest (всего исправлений: 1)
Ответ на: комментарий от anonymous

значит все идиоты если пушат СРАЗУ в мастер
по НОРМАЛЬНОМУ git workflow в мастер можно только мержить и только дев-ветку

q11q11 ★★★★★
()
Ответ на: комментарий от q11q11

Объясни мне это кунфу. По-моему, мастер - это и есть дев-ветка. Для отдельных конкретных фич - свои ветки, которые потом мержатся. Что реально меняется, если я пушу в мастер? Без --force, разумеется. Уже лет десять так делаю, ничего не сломалось. И в большинстве репозиториев на github, которые я видел, разработчики тоже не стесняются пушить в мастер.

anonymous
()
Ответ на: комментарий от anonymous

лет десять так делаю, ничего не сломалось
в большинстве репозиториев на github разработчики тоже не стесняются пушить в мастер.

Ну хз, каждому своё.
Просто есть нормальный git-wokflow и я с этим полностью согласен.
Мастер должен «красивым», без конфликтов, ревертов и прочей повседневной грязи.
Дев-ветка это фактически тест (перед мастером) всего смерженого что девелоперы нафигачили, какие нибудь хот-фиксы, фиксы конфликтов между девелоперами...

q11q11 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.