2012-11-26 5 views
8

Ich habe ein paar Dinge vorgeschlagen, aber nichts scheint es zu entfernen. Dies trat auf, als ich auf Mountain Lion OS X umstieg. Jedes Mal, wenn ich eine git pull mache, zeigt es diesen nervigen, leeren Editor mit dem Titel MERGE_MSG an.Wie entferne ich git's MERGE_MSG?

Wie verhindere ich, dass global über alle meine Apps erscheint?

+1

Wenn das passiert oft genug, um so nervig für Sie sein, das ist wahrscheinlich ein Zeichen, dass Sie zu viele Zusammenführungen tun, was zu einer hässlichen Geschichte. – qqx

+1

Was ist, wenn Sie mit anderen Entwicklern arbeiten? Wäre das nicht unvermeidlich? – Trip

+0

Beachten Sie, dass das beabsichtigte Verhalten darin besteht, einen Editor zu öffnen und den Benutzer eine Nachricht eingeben zu lassen. Dies funktioniert jedoch nur mit nano usw. und schlägt mit sublime-text usw. fehl, da der erhabene Prozess ** sofort beendet wird ** wenn sublime bereits geöffnet ist (ich halte es immer geöffnet) – xjcl

Antwort

13

Sie können entweder --no-edit an git pull übergeben, oder Sie können die Umgebungsvariable GIT_MERGE_AUTOEDIT auf no setzen.

Von der git pull Dokumentation:

--edit, --no-edit 
     Invoke an editor before committing successful mechanical merge to 
     further edit the auto-generated merge message, so that the user can 
     explain and justify the merge. The --no-edit option can be used to 
     accept the auto-generated message (this is generally discouraged). 
     The --edit option is still useful if you are giving a draft message 
     with the -m option from the command line and want to edit it in the 
     editor. 

     Older scripts may depend on the historical behaviour of not 
     allowing the user to edit the merge log message. They will see an 
     editor opened when they run git merge. To make it easier to adjust 
     such scripts to the updated behaviour, the environment variable 
     GIT_MERGE_AUTOEDIT can be set to no at the beginning of them. 
0

merge von Remote-Zweig zu lokalen gibt mehr Kontrolle ziehen. Die Zusammenführung kann 'schnell vorwärts' sein (Zusammenführungsnachricht wird nicht benötigt), die Zusammenführungsnachricht kann sinnvoll sein. Pull gibt Ihnen keine "Schnellvorlauf" -Option und generiert immer eine Standard-Merge-Nachricht, von der abgeraten wird.

0

Eine git pull ist eine git fetch, gefolgt von einer git merge. - Wenn die Zusammenführung zu einem Zusammenführungs-Commit führt, wird nach dieser Nachricht gefragt.

Ich würde vorschlagen, eine git rebase anstelle einer Zusammenführung zu tun. Es hilft, die Historie linear zu halten und vermeidet zusätzliche Merge-Commits. A git pull --rebase tut dies auf einmal (d. H. Es ist git fetch, gefolgt von git rebase).