2012-11-26 12 views
8

Próbowałem kilka rzeczy sugerowanych, ale nic nie wydaje się go usunąć. Zaczęło się to w momencie przejścia na Mountain Lion OS X. Za każdym razem, gdy robię numer git pull, wyświetla to denerwujące, jak w prostym edytorze, tytuł MERGE_MSG.Jak mogę usunąć GIT's MERGE_MSG?

Jak zapobiec temu pojawianiu się na całym świecie we wszystkich moich aplikacjach?

+1

Jeśli dzieje się tak często, że denerwuje cię to prawdopodobnie jest to znak, że robisz zbyt wiele połączeń, co skutkuje brzydką historią. – qqx

+1

Co jeśli dzielisz się pracą z innymi programistami? Czy nie byłoby to nieuniknione? – Trip

+0

Należy zauważyć, że zamierzonym działaniem jest otwarcie edytora i umożliwienie użytkownikowi wpisania wiadomości. Jednak działa to tylko z nano itp. I kończy się niepowodzeniem z wysublimowanym tekstem itp., Ponieważ wysublimowany proces ** natychmiast kończy działanie **, jeśli sublime jest już otwarty (zawsze go otwieram) – xjcl

Odpowiedz

13

Można albo przekazać --no-edit do git pull, albo można ustawić zmienną środowiskową GIT_MERGE_AUTOEDIT na no.

Z dokumentacji git pull:

--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

seryjnej odległego oddziału do lokalnych daje większą kontrolę następnie wyciągnąć. scalenie może być "szybkie przewijanie do przodu" (komunikat scalający nie jest potrzebny), wiadomość merge może mieć znaczenie. Pull nie daje opcji "szybkiego przewijania do przodu" i zawsze generuje zniechęcony domyślny komunikat o scalaniu.

0

A git pull to git fetch, po którym następuje git merge. - Połączenie, jeśli powoduje zatwierdzenie scalenia, prosi o tę wiadomość.

Proponuję zrobić git rebase zamiast scalania. Pomaga zachować linearność historii i unika dodatkowych zatwierdzeń scalania. A git pull --rebase robi to za jednym razem (to jest git fetch, a następnie git rebase).