合并后的Git Commit打开VIM

时间:2012-02-08 18:26:12

标签: git vim

我做了两个文件的合并,现在我试图提交,但它用以下数据打开VIM,现在我完全迷失了。 (我对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

我从这里做什么?

以下是该方案:

我在github上有一个node.js项目,现在我正在尝试将它推送到nodester的git repo(所以我现在有2个遥控器用于我的项目)。但在我推送到nodester之前,我需要修复2个与在nodeter上生成的文件冲突的文件。我解决了与git merge -y的冲突,现在我想提交然后推送。

这是我尝试推送到nodester时遇到的错误:

Nodester!
To git@nodester.com:/node/git/lolcoder/****-**************.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@nodester.com:/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.

3 个答案:

答案 0 :(得分:14)

Git正在打开vim因为您的环境变量EDITOR设置为vim,而Git认为您需要为合并操作提供提交消息,因此它打开一个编辑器供您输入。

您可以通过将环境的EDITOR变量更改为您喜欢的内容,或者在git merge -y

之后提供--message“this is my commit message”参数来解决此问题。

答案 1 :(得分:2)

如果你想要的是执行合并并避免打开任何文本编辑器,你可以在合并命令中添加--no-edit,这样它就不会打开提交消息的编辑器。

答案 2 :(得分:0)

如果您希望完全跳过文本编辑器并使用默认的合并消息,只需将以下行添加到.bash_profile.bashrc.zshrc文件中:

export GIT_MERGE_AUTOEDIT=no