Git'i komut satırından kullanıyorum git commit -m ""
ve Vim'e girmeden işlem mesajına (kullanarak ) satır sonu eklemeye çalışıyorum .
Mümkün mü?
GIT_EDITOR="emacs" git commit -m 'paragraph1' -m 'paragraph2' -e
kaçınmanıza yardımcı olacaktır vim
.
Git'i komut satırından kullanıyorum git commit -m ""
ve Vim'e girmeden işlem mesajına (kullanarak ) satır sonu eklemeye çalışıyorum .
Mümkün mü?
GIT_EDITOR="emacs" git commit -m 'paragraph1' -m 'paragraph2' -e
kaçınmanıza yardımcı olacaktır vim
.
Yanıtlar:
Kesinlikle, nasıl yapıldığı kabuğunuza bağlıdır. Bash'te, iletinin etrafında tek tırnak işaretleri kullanabilir ve teklifi kapatana kadar teklifi başka bir satır için Bash istemine neden olacak şekilde açık bırakabilirsiniz. Bunun gibi:
git commit -m 'Message
goes
here'
Alternatif olarak, bir "burada belge" (heredoc olarak da bilinir) kullanabilirsiniz:
git commit -F- <<EOF
Message
goes
here
EOF
git
komut stdin'den mesaj metnini okuyabilir ve -F
seçenek mesajı okumak için dosya adını verir.
Sadece bir başlık satırı ve bir içerik satırı istiyorsanız şunu kullanabilirsiniz:
git commit -m "My head line" -m "My content line."
Bunun satırlar değil, ayrı paragraflar oluşturduğunu unutmayın. Yani her iki satır arasında boş bir satır olacaktır -m
, örneğin:
My head line
My content line.
-m
her satır için. Güzel!
man git commit
: -m <msg>, --message = <msg> Teslim mesajı olarak verilen <msg> 'yi kullanın. Birden fazla -m seçeneği belirtilirse, değerleri ayrı paragraflar olarak birleştirilir.
-m
.
Git'i komut satırından Bash ile kullanarak aşağıdakileri yapabilirsiniz:
git commit -m "this is
> a line
> with new lines
> maybe"
EnterYeni bir satır istediğinizde yazmanız ve basmanız yeterlidir , ">" sembolü bastığınız anlamına gelir Enterve yeni bir satır vardır. Diğer cevaplar da işe yarıyor.
Kullanabilmelisin
git commit -m $'first line\nsecond line'
Gönderen Bash kılavuzda :
$ ' String ' biçimindeki kelimeler özel olarak ele alınır. Sözcük dizeye genişler , ters eğik çizgiden kaçan karakterler ANSI C standardında belirtildiği gibi değiştirilir.
Bu, yukarıda gösterildiği gibi yeni satırların yanı sıra hex ve Unicode kodları ve diğerlerini de içerir. Ters eğik çizgiden kaçan karakterlerin bir listesini görmek için bağlantılı bölüme gidin.
echo $'one\ntwo'
?
git commit -m "first line"$'\n'"second line"
. Başlamadan önce bir önceki dizeyi kapatmanız gerektiğini unutmayın $'string'
.
Git taahhüdünüze satır sonları ekleme
Çok satırlı bir taahhüt mesajı oluşturmak için aşağıdakileri deneyin:
git commit -m "Demonstrate multi-line commit message in Powershell" -m "Add a title to your commit after -m enclosed in quotes,
then add the body of your comment after a second -m.
Press ENTER before closing the quotes to add a line break.
Repeat as needed.
Then close the quotes and hit ENTER twice to apply the commit."
Ardından ne yaptığınızı doğrulayın:
git log -1
Böyle bir şeyle sonuçlanmalısın:
Ekran görüntüsü, Poshgit ile PowerShell kullanarak kurduğum bir örnekten.
Gibi bir şey yapmak
git commit -m"test\ntest"
çalışmıyor, ama benzeri bir şey
git commit -m"$(echo -e "test\ntest")"
çalışıyor, ama çok hoş değil. İçinde böyle bir şey yapan bir git-commitlb
komut ayarladın PATH
:
#!/bin/bash
message=$1
git commit -m"$(echo -e "$message")"
Ve şu şekilde kullanın:
git commitlb "line1\nline2\nline3"
Uyarı kelimesi, genel kuralın ilk satır olarak bir özet satırı ve sonra iki satır sonu ve daha sonra tamamlama mesajında genişletilmiş bir mesaj olması olduğunu hissediyorum, bu yüzden böyle bir şey yapmak bu kuralı kıracaktır. Elbette şunları yapabilirsiniz:
git commitlb "line1\n\nline2\nline3"
Gönderen Git belgelerine :
-m <msg>
--message = <msg> Teslim mesajı
olarak verilen <msg> 'yi kullanın. Birden fazla-m
seçenek belirtilirse, değerleri ayrı paragraflar olarak birleştirilir.
Bu nedenle, birden fazla yürütme mesajını gruplamak istiyorsanız, bu işi yapmalıdır:
git commit -m "commit message1" -m "commit message2"
Umarım bu, yayınlanan sorudan çok uzak değildir, ancak varsayılan düzenleyiciyi ayarlar ve ardından
git commit -e
çok daha rahat olabilir.
-e
ve bırakabilirsiniz hala editör açılacak
İşleri karmaşıklaştırmaya gerek yok. Bir -m "text...
sonraki satır tuşuna basılarak elde edilir Enter. Ne zaman Enterbasıldığında >
görünür. İşiniz bittiğinde, şunu koyun "
ve basın Enter:
$ git commit -m "Another way of demonstrating multicommit messages:
>
> This is a new line written
> This is another new line written
> This one is really awesome too and we can continue doing so till ..."
$ git log -1
commit 5474e383f2eda610be6211d8697ed1503400ee42 (HEAD -> test2)
Author: ************** <*********@gmail.com>
Date: Mon Oct 9 13:30:26 2017 +0200
Another way of demonstrating multicommit messages:
This is a new line written
This is another new line written
This one is really awesome too and we can continue doing so till ...
Mac'te zsh kullanıyorum ve çift tırnak işaretleri içinde çok satırlı taahhüt mesajları gönderebilirim ("). Temel olarak yeni satırlar için yazmaya ve geri dönmeye devam ediyorum, ancak tırnakları kapatıp geri dönene kadar mesaj Git'e gönderilmiyor .
Bash / Zsh'de tırnak işaretleri arasında basit satır sonlarını kullanabilirsiniz:
git commit -m 'Multi-line
commit
message'
ANSI-C alıntısı Bash / Zsh'da da çalışır:
git commit -m $'Multi-line\ncommit\nmessage'
Git'e, tamamlama mesajını düzenlemek için istediğiniz bir düzenleyiciyi kullanmasını da bildirebilirsiniz. Git-commit üzerindeki dokümanlardan :
İşlem günlüğü iletisini düzenlemek için kullanılan düzenleyici,
GIT_EDITOR
ortam değişkeni,core.editor
yapılandırma değişkeni,VISUAL
ortam değişkeni veyaEDITOR
ortam değişkeninden (bu sırayla) seçilecektir . Ayrıntılar için git-var'a bakın.
Şahsen ben aslında sonra iletileri işlemek değiştirmek yapmayı daha kolay bulmak vi
yaparak (ya da seçtiğiniz git editörü neyse) yerine komut satırında daha git commit --amend
sonra hemen git commit
.
git commit -e
.
git commit
, taahhüt mesajı şablonu olan bir editör açar.
Bash kullanıyorsanız, C-x C-e
( Ctrl+ x Ctrl+ e) düğmesine basın; geçerli komutu tercih ettiğiniz düzenleyicide açar.
Sen verdiği tarafından tercih edilen düzenleyici değiştirebilir VISUAL
ve EDITOR
.
Bu benim var .bashrc
:
export ALTERNATE_EDITOR=''
export EDITOR='emacsclient -t'
export VISUAL='emacsclient -c'
export SUDO_EDITOR='emacsclient -t'
Standart cmd.exe kabuğu ile Windows'ta başarısız çözümlerin listesi ( size deneme-yanılma zamanından tasarruf etmek için!):
git commit -m 'Hello
Enter çalışmıyor: yeni bir satır istemeyecek
git commit -m "Hello
Enter aynı yazı
git commit -m "Hello^
Enter aynı yazı
git commit -m 'Hello^
Enter World'
sorar, çünkü çalışmak gibi görünüyor "Daha?" ve yeni bir satır yazmanıza izin verir, ancak son olarak bunu yaparken git log
hala tek satırlık bir mesaj olduğunu göreceksiniz ...
TL; DR: Windows'da bile, komut satırı ayrıştırma farklı çalışır ve ^
çok satırlı girişe izin verir, burada yardımcı olmaz.
Sonunda git commit -e
muhtemelen en iyi seçenektir.
Ne yazık ki git mesajında herhangi bir yeni satır karakterine izin vermiyor gibi görünüyor. Yukarıda çeşitli makul çözümler var, ancak komut dosyası yazarken bunlar can sıkıcı. Burada belgeler de çalışır, ancak başa çıkmak için biraz fazla can sıkıcı olabilir (yaml dosyalarını düşünün)
İşte yaptığım şey:
git commit \
--message "Subject" \
--message "First line$(echo)Second line$(echo)Third Line"
Bu hala çirkin olsa da, yine de yararlı olabilecek 'tek gömleklere' izin verir. Genellikle dizeler değişken olduğu veya değişkenlerle birleştirildiği için, çirkinler minimumda tutulabilir.
Bir mesaj vermezseniz sizin için nanoyu açacağını (en azından Linux'ta) birden fazla satır yazabileceğinizi söyleyen kimseyi görmüyorum ...
Sadece buna ihtiyaç vardı:
git commit