it-swarm-tr.com

Mevcut, yayınlanmamış taahhüt mesajları nasıl değiştirilir?

Bir yanlışlık mesajı içinde yanlış olan şeyi yazdım.

Mesajı nasıl değiştirebilirim? Taahhüt henüz gerçekleşmedi.

7673
Laurie Young

En son taahhüt mesajını değiştirme

git commit --amend

editörünüzü açarak, en son verilen taahhüdün taahhüt mesajını değiştirmenize izin verir. Ek olarak, taahhüt mesajını doğrudan komut satırında aşağıdakilerle ayarlayabilirsiniz:

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

… Ancak, bu çok satırlı mesajların iletilmesini veya küçük düzeltmelerin daha hantal olmasını sağlayabilir.

Bunu yapmadan önce staged çalışan kopya değişikliğiniz olmadığından emin olun, aksi halde onlar da işlenir. (Unstaged değişiklikler yapılmayacak.)

Uzak şubenize zaten gönderdiğiniz bir taahhüdün iletisini değiştirme

Taahhüdünüzü uzaktaki şubenize itmişseniz, o zaman zorlamanız gerekecek Taahhüt ile:

git Push <remote> <branch> --force
# Or
git Push <remote> <branch> -f

Uyarı: zorla iterek uzaktaki şubenin üzerine yerel durumunuzu yazacaksınız . Uzak şubenizde yerel şubenizde bulunmayan taahhütler varsa, will bu taahhütleri kaybedersiniz.

Uyarı: Zaten diğer insanlarla paylaştığınız taahhütlerde değişiklik yapma konusunda dikkatli olun. Değişiklik esasen yeniden yazma farklı SHA ID'ye sahip olmalarını taahhüt eder; bu, başkalarının yazdığınız eski taahhüdün kopyaları varsa bir sorun teşkil eder. Eski taahhüdün bir kopyasına sahip olan bir kişinin, çalışmalarını yeni yeniden yazılmış taahhüdünüzle senkronize etmesi gerekir; bu bazen zor olabilir, bu nedenle paylaşılan taahhüt geçmişini yeniden yazmaya çalışırken başkalarıyla koordine ettiğinizden emin olun veya paylaşılan taahhütleri yeniden yazmaktan kaçının tamamen.


Etkileşimli rebase kullan

Diğer bir seçenek de etkileşimli rebase kullanmaktır.
Bu, en son mesaj olmasa bile güncellemek istediğiniz herhangi bir mesajı düzenlemenizi sağlar.

Git squash yapmak için aşağıdaki adımları izleyin:

// X is the number of commits to the last commit you want to be able to edit
git rebase -i HEAD~X

Taahhütlerinizi ezdikten sonra - mesajı düzenlemek için e/r öğesini seçin.

 enter image description here

Etkileşimli rebase hakkında önemli not

git rebase -i HEAD~X kullandığınızda, X komutundan more olabilir. Git, son X komutundaki tüm taahhütleri "toplayacak" ve bu aralık arasında bir yerde bir birleşme varsa, sonuçların X + olacağı şekilde tüm siparişleri de göreceksiniz.

İyi bahşiş:

Tek bir daldan daha fazlası için yapmanız gerekiyorsa ve içeriği değiştirirken çakışmalarla karşılaşabilirsiniz, git rerere öğesini ayarlayın ve git, bu çatışmaları sizin için otomatik olarak çözsin.


Belgeleme

15296
EfForEffort
git commit --amend -m "your new message"
2458
lfx_cool

Düzeltmek istediğiniz taahhüt en yenisi değilse:

  1. git rebase --interactive $parent_of_flawed_commit

    Birkaç kusurlu komisyonu düzeltmek istiyorsanız, en eski olanın ebeveyni geçin.

  2. Verdiğinizden bu yana tüm taahhütlerin bir listesi ile bir editör ortaya çıkacaktır.

    1. Düzeltmek istediğiniz taahhütlerin önünde pick öğesini reword (veya Git'in eski sürümlerinde, edit) olarak değiştirin.
    2. Kaydettikten sonra Git listelenen taahhütleri tekrar eder.

  3. reword yapmak istediğiniz her bir taahhüt için Git sizi tekrar editörünüze bırakacaktır. edit yapmak istediğiniz her bir işlem için Git sizi Shell'e bırakır. Eğer Shell’deyseniz:

    1. Taahhüdünüzü istediğiniz şekilde değiştirin.
    2. git commit --amend
    3. git rebase --continue

Bu dizinin çoğu, gittiğiniz çeşitli komutların çıktısı ile açıklanacaktır. Çok kolay, ezberlemenize gerek yok - yalnızca git rebase --interactive'un ne kadar zaman önce olursa olsun, düzeltmeleri yapmanıza izin verdiğini unutmayın.


Zaten bastığınız taahhütleri değiştirmek istemeyeceğinizi unutmayın. Ya da belki yaparsınız, ancak bu durumda, taahhütlerinizi yerine getirmiş ve üstlerine iş yapmış olan herkesle iletişim kurmaya büyük özen göstermelisiniz. Birisi yeniden yayınlanmış veya yayınlanmış bir dalı sıfırladıktan sonra nasıl yeniden kazanabilirim/yeniden senkronize edebilirim?

2330

Önceki taahhüdünüzü değiştirmek için, istediğiniz değişiklikleri yapın ve bu değişiklikleri uygulayın ve ardından koşun

git commit --amend

Bu, metin düzenleyicinizde yeni işleme iletinizi temsil eden bir dosya açar. Eski taahhüt mesajınızın metni ile doldurulur. Onay mesajını istediğiniz gibi değiştirin, ardından dosyayı kaydedin ve bitirmek için editörünüzden çıkın.

Önceki taahhüdü değiştirmek ve aynı günlük mesajını saklamak için

git commit --amend -C HEAD

Önceki işlemi tamamen kaldırarak düzeltmek için,

git reset --hard HEAD^

Birden fazla taahhüt mesajı düzenlemek isterseniz,

git rebase -i HEAD~commit_count

(Değiştir commit_count Düzenlemek istediğiniz taahhüt sayısı ile.) Bu komut editörünüzü başlatır. İlk işlemi (değiştirmek istediğinizi) “seç” yerine “düzenle” olarak işaretleyin, ardından editörünüzden kaydedip çıkın. Taahhüt etmek istediğiniz değişikliği yapın ve ardından koşun

git commit --amend
git rebase --continue

Not: "İstediğiniz değişikliği yap" ı da git commit --amend tarafından açılan düzenleyiciden yapabilirsiniz.

762
Fatih

Daha önce de belirtildiği gibi, git commit --amend, son işlemenin üzerine yazma yoludur. Bir not: Eğer dosyalarının üzerine de yazmak istersen , komut

git commit -a --amend -m "My new commit message"
392
John

Bunun için git filter-branch dosyasını da kullanabilirsiniz.

git filter-branch -f --msg-filter "sed 's/errror/error/'" $flawed_commit..HEAD

Önemsiz bir git commit --amend kadar kolay değil, ancak hatalı işlem mesajınızdan sonra zaten bazı birleşimleriniz varsa, özellikle yararlıdır.

Bunun HEAD ve hatalı taahhüt arasındaki EVERY taahhüdünü yeniden yazmaya çalışacağını unutmayın, bu nedenle msg-filter komutunuzu çok akıllıca seçmelisiniz ;-)

352
Mark

Bu şekilde tercih ederim.

git commit --amend -c <commit ID>

Aksi takdirde, yeni bir taahhüt kimliği ile yeni bir taahhüt olacak

312
krevedko

Git GUI aracını kullanıyorsanız, son işlemeyi değiştir adlı bir düğme var. Bu düğmeye tıkladığınızda son işlem dosyalarınızı ve mesajınızı gösterecektir. Sadece bu mesajı düzenleyin ve yeni taahhüt mesajı ile taahhüt edebilirsiniz.

Veya bu komutu bir konsoldan/terminalden kullanın:

git commit -a --amend -m "My new commit message"
310
Akhilraj N S

Git rebasing komutunu kullanabilirsiniz. Örneğin, bbc643cd'yi işlemek üzere geri değiştirmek isterseniz,

$ git rebase bbc643cd^ --interactive

Varsayılan düzenleyicide, değişiklik yapmak istediğiniz satırdaki 'düzenle'yi' düzenlemek 'için değiştirin. Değişikliklerinizi yapın ve sonra bunları ile sahne

$ git add <filepattern>

Şimdi kullanabilirsiniz

$ git commit --amend

taahhüdü değiştirmek ve bundan sonra

$ git rebase --continue

önceki başa geri dönmek için taahhütte bulunun.

282
Shoaib Ud-Din
  1. Yalnızca son işlem mesajınızı değiştirmek istiyorsanız, aşağıdakileri yapın:

    git commit --amend
    

    Bu sizi metin alıcınıza bırakacak ve son taahhüt mesajını değiştirmenize izin verecektir.

  2. Son 3 işlem iletisini veya bu noktaya kadar işlem iletilerinden herhangi birini değiştirmek istiyorsanız, HEAD~3 komutuna git rebase -i verin:

    git rebase -i HEAD~3
    
275
Heena Hussain

Eski bir işlem iletisini birden fazla dalda değiştirmek zorunda kalırsanız (yani, hatalı mesajla yapılan işlem birden fazla dalda bulunur) kullanmak isteyebilirsiniz:

git filter-branch -f --msg-filter \
'sed "s/<old message>/<new message>/g"' -- --all

Git, yeniden yazmak için geçici bir dizin oluşturur ve ayrıca eski referansları refs/original/ içine yedekler.

  • -f, işlemin yürütülmesini zorlar. Geçici dizin zaten mevcutsa veya refs/original altında kayıtlı referanslar varsa, bu gereklidir. Aksi takdirde, bu bayrağı bırakabilirsiniz.

  • --, filtre dalı seçeneklerini revizyon seçeneklerinden ayırır.

  • --all, tüm dalları ve etiketlerinin yazıldığından emin olacaktır.

Eski referanslarınızın yedeği nedeniyle, komutu yerine getirmeden önce kolayca duruma geri dönebilirsiniz.

Diyelim ki, efendinizi kurtarmak ve dalda erişmek istediğiniz old_master:

git checkout -b old_master refs/original/refs/heads/master
258
sebers

Kullanım

git commit --amend

Ayrıntılı olarak anlamak için mükemmel bir yazı: 4. Git History. Ayrıca hakkında kullanılmadığında git commit --amend hakkında da konuşuyor.

221
skin

Değiştirmek

Burada bir kaç seçeneğin var. Yapabilirsin

git commit --amend

son sözün olduğu sürece.

Etkileşimli rebase

Aksi takdirde, son taahhüdünüz değilse etkileşimli bir yeniden ödeme yapabilirsiniz.

git rebase -i [branched_from] [hash before commit]

Sonra etkileşimli rebase içinde sadece bu göreve düzenleme ekleyin. Bu olduğunda bir git commit --amend yapın ve mesajınızı değiştirin. Bu kesinti noktasından önce geri dönmek istiyorsanız, git reflog işlevini de kullanabilir ve bu kesinliği silebilirsiniz. Sonra tekrar bir git commit yapmak.

195
wallerjake

Git GUI kullanıyorsanız, itilmemiş son işlemi değiştirebilirsiniz:

Commit/Amend Last Commit
183
gulchrider

Son teklifiniz buysa, sadece taahhüdünüzü değiştirin :

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

(yalnızca taahhüt mesajını değiştirdiğinizden emin olmak için -o (--only) bayrağını kullanarak)


Eğer gömülü bir taahhüt ise, müthiş etkileşimli rebase kullanın:

git rebase -i @~9   # Show the last 9 commits in a text editor

İstediğiniz taahhüdü bulun, picköğesini r(rewordname__) olarak değiştirin ve dosyayı kaydedin ve kapatın. Bitti!



Minyatür vim eğitimi (veya yalnızca 8 tuş vuruşuyla yeniden nasıl oluşturulur?) 3jcwname__rname__EscZZname__):

  • Vaktiniz varsa vimtutorkomutunu çalıştırın
  • hname__jname__kname__lname__ hareket tuşlarına karşılık gelir 
  • Tüm komutlara, örneğin bir "aralık" eklenebilir. 3j 3 satır aşağı hareket eder
  • iname__ ekleme moduna girmek için - girdiğiniz metin dosyada görünecektir
  • Esc veya Ctrlcname__ ekleme modundan çıkmak ve "normal" moda dönmek için
  • uname__ geri almak
  • Ctrlrname__ yinelemek
  • ddname__dwname__dlname__ sırasıyla bir satırı, Word’ü veya harfi silmek için
  • ccname__cwname__clname__ sırasıyla bir satırı, Word’ü veya harfi değiştirmek için ddname__iname__)
  • yyname__ywname__ylname__ sırasıyla bir satır, Word veya harf kopyalamak ("yank")
  • pname__ veya Pname__ sırasıyla mevcut pozisyondan önce veya sonra yapıştırmak
  • :wEnter bir dosyayı kaydetmek (yazmak) için
  • :q!Enter kaydetmeden çıkmak
  • :wqEnter veya ZZname__ kaydetmek ve istifa etmek

Metni çok düzenlerseniz Dvorak klavye düzenine geçin, dokunmayı yazmayı ve vim öğrenmeyi öğrenin. Çabaya değer mi? Evet.



ProTip ™: Geçmişi yeniden yazan "tehlikeli" komutları denemekten korkmayın * - Git, varsayılan olarak 90 gün boyunca taahhütlerinizi silmez; Onları reflogda bulabilirsiniz:

$ git reset @~3   # go back 3 commits
$ git reflog
c4f708b [email protected]{0}: reset: moving to @~3
2c52489 [email protected]{1}: commit: more changes
4a5246d [email protected]{2}: commit: make important changes
e8571e4 [email protected]{3}: commit: make some changes
... earlier commits ...
$ git reset 2c52489
... and you're back where you started

* --hard ve --force gibi seçeneklere dikkat edin - verileri silebilirler.
* Ayrıca, işbirliği yaptığınız hiçbir dalda geçmişi yeniden yazmayın.

172
Zaz

Git GUI kullanabildiğim kadarını kullanıyorum ve bu size son işlemi yapma seçeneği sunuyor:

Tick that box

Ayrıca, git rebase -i Origin/masteris, size her zaman efendinin üstüne getirdiğiniz taahhütleri sunacak ve değiştirme, silme, yeniden düzenleme veya squash yapma seçeneği sunan Güzel bir mantradır. Önce bu hashle uğraşmanıza gerek yok.

165
Havard Graff

Vay, yani bunu yapmanın birçok yolu var.

Bunu yapmanın bir başka yolu da, son taahhüdün silinmesidir, ancak çalışmanızı kaybetmemeniz için değişikliklerini saklayın. Düzeltilmiş mesajla başka bir taahhüt daha yapabilirsiniz. Bu şuna benzer bir şey olurdu:

git reset --soft HEAD~1
git commit -m 'New and corrected commit message'

Bir dosya eklemeyi veya değişiklik yapmayı unutursam bunu hep yaparım.

Unutma , --soft yerine --hard belirtmeyi belirtir, aksi takdirde bu işlemi tamamen kaybedersiniz.

135
Radu Murzea

Eski mesajları düzenlemede yardımcı olması için bir Windows/Mac GUI arayan herkes için (yalnızca en son mesajı değil) tavsiye ederim, SourceTree . İzlenecek adımlar aşağıdadır.

SourceTree interactive rebase

Henüz bir uzaktan kumandaya itilmemiş taahhütler için:

  1. Geçerli tüm değişiklikleri yaptığınızdan veya kaydettiğinizden emin olun (yani, "Dosya Durumu" sekmesinde listelenen hiçbir dosya yoktur) - aksi takdirde çalışmaz.
  2. "Günlük/Tarih" sekmesinde, grafikte bitişik bir çizginin altında bir satır bulunan düzenlemek istediğiniz girişe sağ tıklayın (- === -) ve "Yeniden çocuklara dön <commit ref> etkileşimli olarak ..." seçeneğini seçin.
  3. Değiştirmek istediğiniz taahhüt mesajı için tüm satırı seçin (, yani "Mesaj" sütununa tıklayın.
  4. "Mesajı Düzenle" düğmesini tıklayın.
  5. Gelen iletişim kutusundaki mesajı istediğiniz gibi düzenleyin ve ardından Tamam düğmesine tıklayın.
  6. Değiştirilecek başka taahhüt mesajları varsa, 3-4. Adımları tekrarlayın.
  7. Tamam'ı tıklayın: Yeniden düzenleme başlayacaktır. Her şey yolundaysa, çıkış "başarıyla tamamlandı" olarak bitecektir. NOT: Yakın zamanda _Unable to create 'project_path/.git/index.lock': File exists._ aynı anda birden fazla mesaj göndermeye çalışırken. Sorunun tam olarak ne olduğundan ya da SourceTree'nin gelecekteki bir sürümünde çözülüp çözülmeyeceğinden emin değilim, ancak bu gerçekleşirse, bunları birer birer yeniden yapmayı önerebilir (daha yavaş ama daha güvenilir görünüyor).

... Veya ... zaten itilmiş olan taahhütler için:

Yukarıdakine benzer olan ancak dalı zorlamak için komut satırından çalıştırılması gereken başka bir komut gerektiren bu cevap içindeki adımları izleyin - hepsini okuyun ve gerekli önlemleri alın!

128
Steve Chambers

Sadece en son taahhüt kullanımını düzenlemek istiyorsanız:

git commit --amend

veya

git commit --amend -m 'one line message'

Ancak arka arkaya birkaç komisyon düzenlemek istiyorsanız, bunun yerine rebasing kullanmalısınız:

git rebase -i <hash of one commit before the wrong commit>

git rebase editing

Yukarıdaki gibi bir dosyaya edit/e veya diğer seçenekten birini yazın ve kaydet ve çık'ı tıklayın.

Şimdi ilk yanlış işlemede olacaksın. Dosyalarda değişiklik yapın, bunlar sizin için otomatik olarak hazırlanır. tip

git commit --amend

kaydet ve çık ve yaz

git rebase --continue 

tüm seçimlerinizle bitinceye kadar bir sonraki seçime geçmek için.

Bu şeylerin, belirli bir işlemden sonra tüm SHA karma değerlerinizi değiştirdiğini unutmayın.

124

Sadece son mesajınızı değiştirmek istiyorsanız, --only bayrağını ya da -o kısayolunu commit --amend ile kullanmalısınız:

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

Bu, sahnelenen işlerle olan taahhüdünüzü yanlışlıkla artırmamanızı sağlar. Elbette uygun bir $EDITOR yapılandırmasına sahip olmak en iyisidir. Ardından -m seçeneğini dışarıda bırakabilirsiniz ve git, eski olan iletiyi önceden doldurur. Bu şekilde kolayca düzenlenebilir.

123
David Ongaro

Son yanlış taahhüt mesajınızı tek satırda yeni onay mesajı ile güncelleyin:

git commit --amend -m "your new commit message"

Veya aşağıdaki gibi git sıfırlamayı deneyin:

# You can reset your head to n number of commit
# NOT a good idea for changing last commit message
# but you can get an idea to split commit into multiple commits
git reset --soft HEAD^

# it will reset you last commit. Now, you
# can re-commit it with new commit message.

Taahhütleri küçük taahhütlere bölmek için sıfırlama kullanma

git reset, birini birden fazla taahhütte bulmana yardımcı olabilir:

# reset your head. I am resetting to last commits:
git reset --soft HEAD^
# (you can reset multiple commit by doing HEAD~2(no. of commits)

# Now, reset your head for splitting it to multiple commits
git reset HEAD

# add and commit your files seperately to make multiple commits: e.g
git add app/
git commit -m "add all files in app directory"

git add config/
git commit -m "add all files in config directory"

Burada, son taahhüdünüzü iki komisyona başarıyla verdiniz.

99
przbadu

Bu soruda çok fazla cevap var, ancak hiçbiri VIM kullanarak eski mesajların nasıl değiştirileceğini çok ayrıntılı olarak açıklamıyor. Bunu kendim yapmaya çalışırken sıkışıp kaldım, bu yüzden burada, özellikle VIM'de deneyimi olmayan kişiler için bunu nasıl yaptığımı detaylı olarak yazacağım!

Zaten sunucuya ittiğim en son beş taahhüdümü değiştirmek istedim. Bu oldukça 'tehlikelidir' çünkü bundan daha önce başka birisini çektiyseniz, taahhüt mesajlarını değiştirerek işleri karıştırabilirsiniz. Bununla birlikte, kendi küçük şubeniz üzerinde çalışırken ve kimsenin çekemediğinden emin olduğunuzda, şu şekilde değiştirebilirsiniz:

En son beş taahhüdünüzü değiştirmek istediğinizi varsayalım, sonra bunu terminale yazın:

git rebase -i HEAD~5 * Burada 5, değiştirmek istediğiniz taahhütlü mesajların sayısıdır. (öyleyse, sonuncuyu 10'a değiştirmek isterseniz, 10 yazınız)

Bu komut sizi VIM içine götürebilir ve orada taahhüt geçmişinizi 'düzenleyebilir'. Son 5 taahhüdün en üstte böyle olduğunu göreceksin:

pick <commit hash> commit message

pick yerine reword yazmanız gerekir. Bunu VIM içinde i yazarak yapabilirsiniz, bu INSERT moduna girmenizi sağlar. (Alt kısımdaki Word INSERT tarafından ekleme modunda olduğunuzu görüyorsunuz) Değiştirmek istediğiniz taahhütlerde, reword yerine pick yazın.

Daha sonra bu ekranı kaydetmeniz ve sonlandırmanız gerekir, bunu önce esc düğmesine basarak “komut moduna” girerek yaparsınız. (en alttaki Word INSERT'in kaybolması durumunda komut kipinde olduğunuzu kontrol edebilirsiniz) Daha sonra : yazarak bir komut yazabilirsiniz, kaydetme ve çıkma komutu wq. Yani :wq yazarsanız, doğru yolu izlemezsiniz.

Ardından VIM yeniden değerlendirmek istediğiniz her işlem mesajını gözden geçirecek, burada gerçekten uygulama mesajlarını değiştirebilirsiniz. Bunu INSERT moduna girerek, taahhüt mesajını değiştirerek, komut moduna girerek kaydederek çıkabilirsiniz. Bunu 5 kez yapın ve VIM'iniz bitti!

Ardından, zaten yanlış taahhütlerinizi yerine getirdiyseniz, bunların üzerine yazmak için git Push --force yapmanız gerekir. Unutmayın, git Push --force yapmak oldukça tehlikeli bir şeydir, bu nedenle yanlış taahhütler verdiğinizden beri kimsenin sunucudan çekilmediğinden emin olun!

Şimdi taahhüt mesajlarını değiştirdin!

(Gördüğünüz gibi, VIM de o kadar tecrübeli değilim, bu yüzden ne olduğunu açıklamak için yanlış 'lingo' kullandıysam, beni düzeltmekten çekinmeyin!)

82
Marijn

Kullanabilirsiniz git-rebase-reword

Herhangi bir taahhütü (yalnızca son değil) commit --amend ile aynı şekilde düzenlemek üzere tasarlanmıştır.

$ git rebase-reword <commit-or-refname>

Bir taahhüdünde değişiklik yapmak için yeniden yapılanma etkileşimli eyleminden sonra adlandırılır: "yeniden cevaplama". Bkz. bu gönderi ve man -section etkileşimli modu-

Örnekler:

$ git rebase-reword b68f560
$ git rebase-reword HEAD^
76
albfan

reci, recm takma adlarını recommit (amend) için ekledim, şimdi bunu git recm veya git recm -m ile yapabilirim.

$ vim ~/.gitconfig

[alias]

    ......
    cm = commit
    reci = commit --amend
    recm = commit --amend
    ......
76
Chu-Siang Lai

İçinde bir yazım hatası olan bir taahhüt itti olduğunu fark ettim. Geri almak için aşağıdakileri yaptım:

git commit --amend -m "T-1000, advanced prototype"
git Push --force

Uyarı: / değişikliklerinizi zorla, yerel şubenizdeki uzak şubenin üzerine yazacaktır. Saklamak istediğiniz hiçbir şeyin üzerine yazmadığınızdan emin olun. Ayrıca, şubeyi başka biri sizinle paylaşıyorsa, değiştirilmiş (yeniden yazılmış) bir taahhüdü zorlamak konusunda dikkatli olun, çünkü yeni yazdığınız taahhüdün eski kopyasına sahiplerse, kendi tarihlerini yeniden yazmaları gerekir.

54
neoneye

Aşağıdakileri kullanmayı seviyorum:

  1. git status
  2. git add --all
  3. git commit -am "message goes here about the change"
  4. git pull <Origin master>
  5. git Push <Origin master>
49
Kedar Adhikari

Kodu uzaktaki şubenize ( GitHub / Bitbucket ) itmediyseniz, komut satırındaki taahhüt iletisini aşağıdaki gibi değiştirebilirsiniz.

 git commit --amend -m "Your new message"

Belirli bir dalda çalışıyorsanız, şunları yapın:

git commit --amend -m "BRANCH-NAME: new message"

Zaten kodu yanlış mesajla ittiyseniz ve mesajı değiştirirken dikkatli olmanız gerekir. Yani, taahhüt mesajını değiştirip tekrar bastırmayı denedikten sonra sorun yaşarsınız. Düzgünleştirmek için şu adımları izleyin.

Lütfen yapmadan önce tüm cevabımı oku.

git commit --amend -m "BRANCH-NAME : your new message"

git Push -f Origin BRANCH-NAME                # Not a best practice. Read below why?

Önemli not: Gücü kullandığınızda Doğrudan itme, diğer geliştiricilerin aynı dalda çalıştığı kod sorunlarıyla sonuçlanabilir. Bu nedenle, bu çakışmaları önlemek için, force Push : komutunu yapmadan önce kodu şubenizden çekmeniz gerekir.

 git commit --amend -m "BRANCH-NAME : your new message"
 git pull Origin BRANCH-NAME
 git Push -f Origin BRANCH-NAME

Zaten itti ise, taahhüt mesajını değiştirirken en iyi uygulamadır.

43
Prabhakar