2012-02-08 39 views
13

Tôi đã hợp nhất 2 tệp và bây giờ tôi đang cố gắng cam kết nhưng nó sẽ mở VIM với dữ liệu sau và bây giờ tôi hoàn toàn bị mất. (Tôi không có kinh nghiệm với VIM)Git Cam kết sau khi hợp nhất mở 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 

Tôi phải làm gì từ đây?

Dưới đây là kịch bản:

Tôi đã có một dự án Node.js trên github, bây giờ tôi đang cố gắng để đẩy này để repo git nodester của (vì vậy bây giờ tôi có 2 điều khiển từ xa cho dự án của tôi). Nhưng trước khi tôi có thể chuyển sang gật đầu, tôi cần phải sửa 2 tập tin mâu thuẫn với những tập tin được tạo ra trên nodester cho tôi. Tôi đã giải quyết các xung đột với git merge -y và bây giờ tôi muốn cam kết sau đó đẩy.

Đây là lỗi tôi nhận được khi cố gắng chuyển đến 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

Điều này không liên quan gì đến node.js hoặc nodster, vui lòng chỉ sử dụng các thẻ thích hợp. Trong trường hợp này GIT. – thenetimp

+0

Tôi nghĩ rằng đây là một tính năng "xấu" của git. Nó chỉ làm cho nó ít tự động hóa.Và tôi phải bọc lệnh git để làm cho nó tự động hóa một lần nữa.' - tin nhắn "lưu" 'hoạt động cho tôi. –

Trả lời

13

Git được mở vim vì môi trường của bạn biến EDITOR được thiết lập để vim, và Git tin bạn cần cung cấp một thông điệp cam kết cho hợp nhất hoạt động, do đó, nó đang mở một trình soạn thảo để bạn nhập một.

Bạn có thể sửa lỗi này bằng cách thay đổi biến EDITOR của môi trường thành thứ bạn thích hoặc bằng cách cung cấp đối số - đây là thông điệp cam kết của tôi sau git merge -y

+0

Tôi đã thực hiện 'git commit -" message "' –

+0

Giá trị mặc định cho biến EDITOR là gì, điều này không xảy ra với tôi trước đây và tôi sẽ muốn quay trở lại hành vi mặc định. – Leito

+0

Giá trị mặc định thay đổi từ hệ thống đến hệ thống. Tôi không có ý tưởng của bạn là những gì trước đây. Nếu bạn không vĩnh viễn thay đổi biến EDITOR (trong .bashrc của bạn hoặc tương tự), thì bạn có thể chỉ cần mở một thiết bị đầu cuối mới và trở lại bình thường. – mattbornski

2

Nếu những gì bạn muốn là thực hiện hợp nhất và tránh mở bất kỳ trình soạn thảo văn bản nào, bạn có thể thêm --no-edit vào lệnh hợp nhất của mình để nó không mở trình chỉnh sửa cho thông báo cam kết.

Các vấn đề liên quan