Quelle est l'utilisation de "mode d'input standard" pour `git commit -F -` dans Git Bash pour Windows?

Je comprends que la command suivante prend le text de l'input standard et l'utilise comme message pour le journal de validation:

echo "hello world" | git commit -F - 

Mais, si vous l'avez juste comme git commit -F - alors il vous amène à ce que j'appelle "mode d'input standard" où Git Bash affiche le message (reading log message from standard input) et attend une sorte d'input … deviner. Ma question est quel est ce mode vraiment et peut-il être utilisé du tout? J'ai entré du text et je suis sorti en utilisant ctrl-z et ctrl-c , mais je n'ai pas eu de chance d'avoir le commit à exécuter ensuite. Cela me ramènerait à l'invite.

Question: Que se passe-t-il réellement en "mode d'input standard" et peut-il être utilisé pour entrer le message du journal de validation avec succès?

EDIT: J'ai essayé ctrl-d , mais rien ne change. J'utilise Windows 10.

Solutions Collecting From Web of "Quelle est l'utilisation de "mode d'input standard" pour `git commit -F -` dans Git Bash pour Windows?"

Utilisez CTRL-D (EOF) après avoir entré votre message. CTRL-C se termine, CTRL-Z pauses. EOF indique à STDIN que votre message est complet.

 git commit -F - my message blah blah<enter> <CTRL-D> 

Lorsque vous utilisez les commands in, elle indique à l'application de lire depuis STDIN. Git remarque que STDIN est vide (à less que vous ne fassiez écho et que vous n'effectuez pas de pipe) donc il commence à écouter pour l'input. Une fois que vous tapez votre message, vous devez indiquer que vous avez terminé en envoyant le message EOF . La combinaison de touches pour EOF est CTRL-D

Lorsque vous exécutez echo hello | git commit -F - echo hello | git commit -F - vous redirigez le text dans git afin qu'il utilise le message transmis.

Par curiosité, pourquoi ne pas utiliser git commit -m 'your message here' ?

Lorsque vous utilisez les commands in, elle indique à l'application de lire depuis STDIN. Git remarque que STDIN est vide (à less que vous ne fassiez écho et que vous n'effectuez pas de pipe) donc il commence à écouter pour l'input. Une fois que vous tapez votre message, vous devez indiquer que vous avez terminé en envoyant le message EOF.

Lorsque vous exécutez echo hello | git commit -F – vous redirigez le text dans git afin qu'il utilise le message transmis.

~ blockloop

Pour utiliser git commit -F - sous Windows dans la console Git Bash, vous devez append la command à winpty comme winpty :

winpty git commit -F -

Ensuite, vous serez amené au "mode d'input standard" comme prévu. Au lieu d'utiliser CTRL + D comme vous le feriez avec Linux et Mac, appuyez sur CTRL + Z , puis sur ENTRÉE sur une nouvelle ligne . Cela indiquera un EOF et sauvegardera le message du journal de validation.

Si vous appuyez sur CTRL + Z sur la même ligne que le message, alors ^Z sera entré comme text à côté du message et rien d'autre ne se passera. Vous devez appuyer sur CTRL + Z puis sur ENTER sur une ligne séparée et vide.

Donc, pour éditer l'exemple de blockloop:

 winpty git commit -F - my message blah blah<enter> <CTRL-Z><enter> 

Source: Github

Vous pouvez essayer SHIFT + esc, et après insert q et appuyez sur Entrée.