Редагування повідомлення про git commit у GitHub


173

Чи є спосіб онлайн-редагування повідомлення про фіксацію в GitHub.com, після надсилання?

З командного рядка це можна зробити

git commit --amend -m "New commit message"

як правильно запропоновано в іншому запитанні .

Спробуйте, git pullа потім git pushспрацювало (без будь-якого іншого зобов’язання втручатися в середній час)

Але чи можна це зробити через GitHubвеб-сайт?


Будь ласка , дивіться @ DanGreen-Leipciger в відповідь , навіть якщо він не є прийнятим один.
РБТ

Відповіді:


101

Ні, це безпосередньо неможливо. Хеш для кожної комісії Git також обчислюється, виходячи з повідомлення комісії. Коли ви змінюєте повідомлення про фіксацію, ви змінюєте хеш фіксації. Якщо ви хочете підштовхнути цю коммісію, ви повинні змусити цей натиск (git push -f). Але якщо вже хтось витягнув ваш старий прихильність і розпочав роботу, засновану на цьому зобов'язанні, йому доведеться перекласти свою роботу на ваш новий.


Я також міг зробити git pull, а потім git push, і це спрацювало. Але, мабуть, немає способу в Інтернеті.
PNS

Досі неможливо станом на 5 квітня 2016 року
bigT

І я здогадуюсь, що це не буде першочерговим завданням, оскільки ви змінили історію фіксації вже опублікованої гілки, чого ви ніколи не повинні робити (за винятком випадків, коли ви впевнені на 200%, що ніхто інший не має цієї гілки на своїй локальній машині).
dunni

Це лише напівправда. Це правда, але тільки з припущеннями. Відповідь буде краще, якби вона поєднувалася з відповіддю від @DanGreen (нижче). Це не "прямо можливо", і, звичайно, воно має попередження (тобто: "ти ніколи цього не повинен робити ... [за винятком випадків, коли ти впевнений, що хочеш]") - але просто говорити, що це не так можливо, коли це технічно можливо, є неповною відповіддю.
Бейн

1
ОП запитала, чи можна це зробити в режимі он-лайн на веб-сайті Github. AFAIK це все ще неможливо. Тож моя відповідь справедлива, і відповідь Dan Green розглядає лише те, як це зробити локально, а не на веб-сайті Githubs.
dunni

145

Інструкції GitHub для цього:

  1. У командному рядку перейдіть до сховища, яке містить команду, яку ви хочете внести.
  2. Введіть git commit --amendі натисніть Enter.
  3. У текстовому редакторі відредагуйте повідомлення про фіксацію та збережіть команду.
  4. Використовуйте git push --force example-branchкоманду, щоб примусити натиснути на стару фіксацію.

Джерело: https://help.github.com/articles/changing-a-commit-message/


11
БУДЬ ОБЕРЕЖНИЙ! Різниця між використанням <git commit --amend> & <Enter> та <git commit --amend -m "повідомлення про нову фіксацію"> полягає в тому, що в першому випадку ви редагуєте повідомлення про фіксацію в текстовому редакторі & у другому - замінивши його "новим повідомленням про фіксацію". Якщо ви змусите натиснути, це замінить фіксацію на пульті дистанційного керування. Це НЕ вирішує проблему, якщо якщо інші люди у вашій команді зняли попереднє зобов’язання, тепер у вас є різні історії (включаючи різні комісії) на різних машинах. Якщо ви знаєте, що ніхто не стягував ваше зобов'язання, це безпечно. Читати джерело Ден опублікував
TMin

7
git commit --amendіснував завжди. Також ви плутаєтесь між git (що є інструментом командного рядка з відкритим кодом) та Github (що є компанією, що надає хостинг в режимі он-лайн).
vinyll

1
ОП запитала про GitHub, а конкретно про те, як комісія була передана їх серверам. Це інструкції GitHub робити те, про що просили ОП.
Ден Грін-Лейпцигер

3
@ DanGreen-Leipciger - так, але це не робиться на самому веб-сайті, це робиться за допомогою командного рядка. Я вважаю, що PNS хотів це зробити з веб-інтерфейсу.
PhistucK

2
ОП запитала, як це зробити конкретно з GitHub, так це робити саме з GitHub.
Ден Грін-Лейпцигер

30

Потрібно git push -fприпустити, що раніше ніхто не стягував інші зобов'язання. Остерігайтеся, ви змінюєте історію.


3

Ні, тому що повідомлення про фіксацію пов'язане з SHA / хешами для виконання, і якщо ми його змінимо, також буде змінено SHA. Я використовував спосіб, щоб створити коментар до цього зобов'язання. Я не можу думати інакше.


2

Для користувачів Intellij: Якщо ви хочете вносити зміни в інтерактивний спосіб для минулих комісій, які не натиснуті, виконайте наведені нижче кроки в Intellij :

  • Виберіть "Контроль версій"
  • Виберіть Журнал
  • Клацніть правою кнопкою миші команду, до якої потрібно змінити коментар
  • Клацніть reword
  • Зроблено

Сподіваюся, це допомагає


0

Я зіткнувся з тією ж проблемою.

Подивіться у своєму github для певної гілки, і ви дізнаєтесь ідентифікатор фіксації першої фіксації в цій гілці. зробіть посилання на це:

git rebase -i

редактор відкриється. Зробіть відстеження ваших зобов’язань з інтерфейсу github та відкритого редактора та змініть повідомлення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.