2012-02-08 20 views
13

Ho eseguito un'unione di 2 file e ora sto provando a eseguire il commit ma esso apre VIM con i seguenti dati e ora sono completamente perso. (Non ho esperienza con VIM)Git Commit dopo l'unione si apre VIM

Merge branch 'master' of nodester.com:/node/git/lolcoder/****-****** 

Conflicts: 
     .gitignore 
     server.js 
# 
# It looks like you may be committing a merge. 
# If this is not correct, please remove the file 
#  .git/MERGE_HEAD 
# and try again. 


# Please enter the commit message for your changes. Lines starting 
# with '#' will be ignored, and an empty message aborts the commit. 
# On branch master 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
#  .project 
~                    
~                    
~                    
".git/COMMIT_EDITMSG" 19L, 521C        1,1   All 

Cosa faccio da qui?

Ecco lo scenario:

ho avuto un progetto node.js su GitHub, ora sto cercando di spingere questo repo git di nodester (così ora ho 2 telecomandi per il mio progetto). Ma prima di poter spingere su nodester, avevo bisogno di correggere 2 file che erano in conflitto con quelli generati su nodester per me. Ho risolto i conflitti con git merge -y e ora voglio eseguire il commit e poi spingere.

Questo è l'errore che ottengo quando prova a spingere per nodester:

Nodester! 
To [email protected]:/node/git/lolcoder/****-**************.git 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to '[email protected]:/node/git/lolcoder/****-************.git' 
To prevent you from losing history, non-fast-forward updates were rejected 
Merge the remote changes (e.g. 'git pull') before pushing again. See the 
'Note about fast-forwards' section of 'git push --help' for details. 
+0

Questo non ha nulla a che fare con node.js o nodster, per favore usa solo tag appropriati. In questo caso GIT. – thenetimp

+0

Penso che questa sia una caratteristica "cattiva" di git. Rende solo meno automazione. E devo completare il comando git per renderlo nuovamente automatico. - Il messaggio "salva" funziona per me. –

risposta

13

Git sta aprendo vim perché il vostro ambiente EDITOR variabile è impostata su vim e Git crede è necessario fornire un messaggio di commit per la unire l'operazione, quindi è necessario aprire un editor per scriverne uno.

È possibile risolvere questo problema modificando la variabile EDITOR dell'ambiente in un modo che preferisci o fornendo un argomento --message "questo è il mio messaggio di commit" dopo git merge -y

+0

Ho fatto 'git commit -" message "' –

+0

Qual è il valore predefinito per la variabile EDITOR, non mi è successo prima e mi piacerebbe ritornare al comportamento predefinito. – Leito

+0

Il valore predefinito varia da sistema a sistema. Non ho idea di cosa fosse il tuo prima. Se non hai modificato in modo permanente la variabile EDITOR (nel tuo .bashrc o simile), probabilmente puoi semplicemente aprire un nuovo terminale e tornare alla normalità. – mattbornski

2

Se ciò che si desidera è eseguire l'unione ed evitare l'apertura di qualsiasi editor di testo, è possibile aggiungere --no-edit al comando di unione in modo che non apra l'editor per il messaggio di commit.

Problemi correlati