2012-02-08 2 views
13

Я сделал слияние из 2-х файлов и теперь Im пытается зафиксировать, но он открывает VIM со следующими данными, и теперь я полностью потерян. (У меня нет опыта работы с VIM)Git Commit после слияния открывается 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 

Что мне делать?

Вот сценарий:

У меня был Node.js проекта по GitHub, сейчас я пытаюсь подтолкнуть это мерзавец репо nodester (в так что я сейчас имею 2 пультов для моего проекта). Но прежде чем я смогу нажать на узел, мне нужно было исправить 2 файла, которые противоречили тем, которые были созданы для nodeter для меня. Я решил конфликты с git merge -y, и теперь я хочу совершить, а затем нажать.

Это ошибка я получаю при попытке нажать на 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

Это не имеет никакого отношения к node.js или nodster, пожалуйста, используйте только теги. В этом случае GIT. – thenetimp

+0

Я думаю, что это «плохая» особенность git. Это просто делает его менее автоматизированным. И мне нужно обернуть команду git, чтобы автоматизировать ее снова. '- сообщение« save »работает для меня. –

ответ

13

Git открывает Vim, поскольку переменная среда РЕДАКТОР устанавливается в Vim, и Git считает, что вам нужно, чтобы обеспечить сообщение фиксации для слияние, поэтому он открывает редактор для ввода типа.

Вы можете исправить это, изменив переменную EDITOR вашей среды на что-то, что вы предпочитаете, или предоставив аргумент -message «это мое сообщение фиксации» после git merge -y

+0

Я сделал 'git commit -" message "' –

+0

Что такое значение по умолчанию для переменной EDITOR, раньше этого не было со мной, и я хотел бы вернуться к поведению по умолчанию. – Leito

+0

Значение по умолчанию варьируется от системы к системе. Я понятия не имею, что было раньше. Если вы не навсегда изменили переменную EDITOR (в вашем .bashrc или аналогичном), то вы, вероятно, можете просто открыть новый терминал и вернуться к нормальной работе. – mattbornski

2

Если вы хотите выполнить слияние и не открывать текстовый редактор, вы можете добавить --no-edit в команду слияния, чтобы он не открыл редактор для сообщения о фиксации.

Смежные вопросы