pullコマンドを使用すると、githubがMac端末をロックする


95

私は、Mac上のgithubの(コマンドライン)の学習の過程でだと私はない時はいつでもgit pull origin master、私はこれを取得します

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
".git/MERGE_MSG" 7L, 293C

端末がロックして、すぐに何も入力できないように見えますが、最終的にテキストを入力できるようになると、gitコマンドを認識できないようです。

これはgitのバグですか、それとも何か不足していますか?


5
それは本当にロックアップするのviですか、それともあなたは慣れていませんか?
Edward Thomson

2
理由を正確に説明することはできませんが、gitはコミットメッセージの入力を求めています。おそらくテキストエディターvimを使用しているはずです。
ミシュ

ああ、そうだ、そうだ。私はvimに慣れていない。コメントを入力して保存してから続行するにはどうすればよいですか?
ゼロ

7
入力iしてコメントを挿入し、Escキーを押して入力:wq
Scott Harwell

1
慣れてviいないのなら、閉じ込められていませんか?
Ben Racicot

回答:


225

あなたはテキストエディタ、vimにいます!これはモーダルテキストエディターなので、次のことを行う必要があります。

  1. を押しi挿入モードに入ります
  2. これで、通常の(モーダルではない)テキストエディターにいるかのようにメッセージを入力できます。
  3. を押しescて、コマンドモードに戻ります
  4. 次に、:w続けて入力しenterて保存します。
  5. 最後に:q続いenterて終了します。

4
gitが全員がvimを知っていると想定しているのは素晴らしいことです。
user124384

2
@ user124384 Gitは$EDITOR環境変数を使用しようとしますが、環境変数がvi見つからない場合はフォールバックします。git configを使用してフォールバックを構成できますcore.editorgit-scm.com/book/en/v2/…を
ceyko

どこに入力できiますか?
Val Do

1
@ val-kharitonashvili quertyキーボードではuandに隣接していoます;)しかし、実際には、端末にフォーカスがある限り、動作するはずです。
ceyko

なぜこれが起こるのですか?私はいつもやっているgit merge master...と、過去2日間で、私はこれを見ている
ハニー


2

あなたの説明によると、エディターはvimのように見えます。このコンソールは、実行したいコミットについてメッセージを書くように指示するだけであり、強制的に行われます。

  • 入力するだけでi、あなたがに行くよ-- INTER --今、あなたのコメントを書き込むことができ、モード。

  • 書き込みが終わったらesc、キーボードのキーを押して、コマンドモードに移動します。(コンソールの下部を参照

  • 変更を保存してから:wenterキーを押してください

<code>:w </ code>コマンドの記述

  • あなたは今すぐキー:qを押して書くことで終了できenterます

<code>:q </ code>コマンドを書く

  • ばんざーい!最後に、メインコンソールに戻ります。



0

次の手順を実行してこの問題を修正しました

  1. #MERGE_MSG#を削除

    rm .git/\#MERGE_MSG#

  2. MERGE_HEADを削除

    rm .git/MERGE_HEAD

さらに、gitのエディターをvimに精通しているエディターに明示的に設定します(nanoを設定できます)。

`git config --global core.editor "vim"`

0

できるよ git checkout --merge yourbranch

現在のブランチ、作業ツリーの内容、および新しいブランチの間の3者間マージが行われ、新しいブランチに移動します。


0

問題は通常、スペルを間違えると発生します。
あなたが興味を持っている可能性が高いのは、このコマンドです:

git commit -m "message"

問題があった場合は、次のようになります

Your branch and 'origin/master' have diverged,
and have 2 and 1 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

そして使用:

git pull

につながるはずです:

Already up-to-date.

次に、確認することをお勧めします。

git status

もう一度プッシュしてみてください:

git push
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.