GitHub'da git kesinleştirme mesajını düzenleme


174

Teslimden GitHub.comsonra , taahhüt mesajını çevrimiçi düzenlemenin herhangi bir yolu var mı ?

Komut satırından,

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

başka bir soruda doğru şekilde önerildiği gibi .

Denemek git pullve daha sonra git pushçalıştı (bu süre içinde başka herhangi bir taahhüt olmadan).

Ancak GitHubweb sitesi üzerinden yapılabilir mi?


DanGreen-Leipciger en @ bakınız cevap o kabul kimse olmadığı halde.
RBT

Yanıtlar:


101

Hayır, bu doğrudan mümkün değil. Her Git taahhüdü için karma, taahhüt mesajına göre hesaplanır. İşlem mesajını değiştirdiğinizde işlem karmasını değiştirirsiniz. Eğer bu taahhüdü zorlamak istiyorsanız, bu zorlamayı zorlamanız gerekir (git push -f). Ama zaten birisi eski taahhüdünüzü çekti ve bu taahhüde dayalı bir çalışma başlattıysa, çalışmasını yeni taahhüdünüze yeniden kavuşturmak zorunda kalacaktı.


Ben de git pull ve sonra git push yapabilirdi ve çalıştı. Ama görünüşe göre çevrimiçi bir yol yok.
PNS

5 Nisan 2016 itibariyle hala mümkün değil
bigT

Ve daha önce yayınlanmamış bir dalın taahhüt geçmişini değiştireceğiniz için, yüksek öncelik olmayacağını tahmin ediyorum, çünkü asla yapmamalısınız (% 200 emin değilseniz, bu makinede başka kimsenin bu şubeye sahip olmadığı hariç).
dunni

Bu sadece yarı doğrudur. Bu doğru, ama sadece varsayımlarla. @DanGreen'den (aşağıda) bununla birleştirilirse cevap daha iyi olurdu. "Doğrudan mümkün" değildir ve kesinlikle uyarılarla birlikte gelir (yani: "bunu asla 'asla' yapmamalısınız ... [istediğinizden emin olmanız dışında]") - ama basitçe söylemek gerekirse mümkün, teknik olarak mümkün olduğunda, eksik bir cevaptır.
Bane

1
OP, Github web sitesinde çevrimiçi yapmanın mümkün olup olmadığını sordu. AFAIK bu hala mümkün değil. Bu yüzden cevabım geçerli ve Dan Green'in cevabı, Githubs web sitesinde değil, yalnızca yerel olarak nasıl yapıldığını ele alıyor.
dunni

145

GitHub'ın bunu yapma talimatları:

  1. Komut satırında, değiştirmek istediğiniz taahhüdü içeren depoya gidin.
  2. Yazıp git commit --amendEnter tuşuna basın.
  3. Metin düzenleyicinizde kaydetme mesajını düzenleyin ve kaydetme işlemini kaydedin.
  4. git push --force example-branchEski taahhüdü zorlamak için komutu kullanın .

Kaynak: https://help.github.com/articles/changing-a-commit-message/


11
DİKKATLİ OL! <Git commit --amend> & <Enter> ve <git commit --amend -m "yeni işlem mesajı"> kullanma arasındaki fark, ilk durumda işlem iletinizi bir metin düzenleyicisinde & ikincisinde "yeni taahhüt mesajı" ile değiştiriyorsunuz. Eğer zorlamayı zorlarsanız, uzaktan kumandanızın yerine geçecektir. Bu, ekibinizdeki diğer kişilerin önceki taahhüdü ele geçirmesi durumunda artık farklı makinelerde farklı geçmişlere (farklı taahhütler dahil) sahip olmanız sorununu çözmez. Kimsenin taahhüdünüzü çekmediğini biliyorsanız bu güvenlidir. Kaynak oku Dan yayınlanmıştır
TMin

7
git commit --amendhep var olmuştur. Ayrıca git (açık kaynak kodlu bir komut satırı aracıdır) ve Github (çevrimiçi kaynak barındırma hizmeti veren bir şirket) arasında karışıyorsunuz.
vinyll

1
OP, GitHub'ı ve özellikle taahhüt sunucularına aktarıldıktan sonra hakkında sordu. Bunlar GitHub'ın OP'nin istediklerini yapma talimatları.
Dan Green-Leipciger

3
@ DanGreen-Leipciger - evet, ama bu web sitesinde değil, komut satırı kullanılarak yapılır. Sanırım PNS bunu web arayüzünden yapmak istedi.
PhistucK

2
OP özellikle GitHub ile nasıl yapılacağını sordu, bu özellikle GitHub ile nasıl yapılacağını açıkladı.
Dan Green-Leipciger

30

Daha git push -fönce kimsenin diğer taahhüdü çekmediğini varsaymalısınız. Dikkat edin, geçmişi değiştiriyorsunuz.


3

Hayır, çünkü taahhüt mesajı taahhüt SHA / karması ile ilişkilidir ve bunu değiştirirsek taahhüt SHA da değiştirilir. Kullandığım yol bu taahhüt hakkında bir yorum oluşturmak. Başka türlü düşünemiyorum.


2

Intellij kullanıcıları için: Aktarılmamış geçmiş taahhütler için etkileşimli bir şekilde değişiklik yapmak istiyorsanız, Intellij'deki aşağıdaki adımları izleyin :

  • Sürüm Kontrolü Seçin
  • Günlük Seçin
  • Yorumunu değiştirmek istediğiniz taahhüdü sağ tıklayın
  • Tıklama yeniden sarmak
  • Bitti

Umarım yardımcı olur


0

Aynı sorunla karşı karşıyaydım.

Belirli bir dal için github'ınıza bakın ve o daldaki ilk taahhüdün taahhüt kimliğini öğreneceksiniz. buna bir rebase yapın:

git rebase -i

editör açılacaktır. Github UI ve açılan editörden taahhütlerinizi takip edin ve mesajları değiştirin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.