どうすればgitでファイルをコミットできますか?


84

チュートリアルはどれも役に立ちません!
彼らは皆、私が何をすべきかを知っていると思っているところでそのことをします。

現在、私のターミナルウィンドウはで始まります。

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       deleted:    httpdocs/newsite/manifest/cache/0a432970ba6491fe65dad60b012e5c95_louloumay2011en-1-4dea3186b7f7b.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0a61b5d7a9e97da78fe602e1ad41edb6_5-4dec7c3d57c80.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0afb6a7716a85d0de46cdd03bb30f75f_fifa_panorama_full_page-01_thu-4dea3d1a0e0f5.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0b3bc9be76a5d3e1e36af4b8dcf98658_free2-4df0e2e08761f.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0b6342913b8e599fac76da452af98ec5_si-feb-2009-1-4dea3d1abcb61.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0b9ddc587340f7744e03c4b2dafacf7f_lou-lou-winter-2009-cover-4dea3d1a9b1a0.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0bf64ff8fc22720b3da20d0730fa6a04_chatelaine-dec-2009-4dea3d18daa30.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0bf664e03eb0a2255b69b02aed85add0_summumfeb2011-2-4dea3188766aa.jpg

しかし、ここで彼らが言うことを行う方法を知る方法はありません
。http://learn.github.com/p/normal.html

それが言うのは

コミットメッセージを入力してエディターを終了するだけです。

どういう意味ですか?!
あなたは言葉を書くからといって、単純にそれが簡単であるという意味ではありません。..

入力を開始すると、「録音」または「挿入」と表示され、約300個のファイルがあり、すべての行をメッセージに置き換えてほしいという奇妙な処理が行われます。

助けて !

これには便利なMacアプリケーションを使用しますが、ファイル数が20を超えると、フリーズします。
どうしたの??


10
それは私の質問とは何の関係もありません。私が「丘を下ってスキーをする方法」と言った場合、あなたは人にスキーの方法を教えます、あなたは「まあ、なぜあなたは山にいるのですか」とは言いません
Kirk Strobeck 2011

2
-m引数なしでコミットすると、コメントを作成できるテキストエディタが起動します。(この場合、おそらくデフォルトでvimになります。)チュートリアルの作成者は、あなたがすでにそれを使用する方法を知っていると想定しています。
Alex Howansky 2011

@alex説明ありがとうございます
Kirk Strobeck 2011

私よりもOSXに精通している人が、デフォルトのエディタを別のものに設定する方法を教えてくれるでしょう。通常、シェルのスタートアップ構成では「export EDITOR = / path / to / whatever」です。
Alex Howansky 2011

6
RT [F] Mの場合は-1。デフォルトのエディターが問題のように見えますが、gitのドキュメントを読んでいないわけではありません。
フィリップオークリー

回答:


92

git commit引数なしで実行すると、デフォルトのエディターが開き、コミットメッセージを入力できるようになります。ファイルを保存してエディターを終了すると、コミットされます。

デフォルトのエディタはViまたはVimのようです。入力時に「奇妙なもの」が発生する理由は、Viが挿入モードで起動しないためiです。最初にキーボードを押す必要があります。それが必要ない場合は、次のように、より単純なものに変更できます。

git config --global core.editor nano

次に、コミット時にNanoエディターをロードします(インストールされていると仮定します)。これは、Viなどのモーダルエディターを使用したことがないユーザーにとってはるかに直感的です。

画面に表示されるテキストは、コミットしようとしていることを思い出させるためのものです。行の前#にはコメントがあります。つまり、コミットメッセージを保存するときに、Gitはこれらの行を無視します。ファイルごとにメッセージを入力する必要はありません。エディターのバッファーの先頭にテキストを入力するだけです。

エディターをバイパスするために、引数としてコミットメッセージを提供できます。

git commit -m "Added foo to the bar"

あなたが「無視する」と言うとき、それはそれが上演され続けることを意味しますか?
カークストロベック2011

3
いいえ、これらの行は、コミットされる内容には影響しません。コメント行を削除しても、これらのファイルはコミットされます。これらは、git commitコマンドを実行したときのリポジトリのステータスを思い出させるだけです。
ベンジェームス

それで、コミットを実行すると、#その行にがあったとしても、変更が記録されますか?
カークストロベック2011

2
それは正しいです。コミットされているのはgit add、インデックスに追加されたものです。
ベンジェームス

別のオプションは、の代わりにgit commit、を実行できます。git commit -a -m "Your message for the commit"その後、エディターは実行されません。

27

ここでの唯一の問題は、起動されるデフォルトのエディタがviまたvimはであり、慣れていないことであるように聞こえます。(ヒット、変更を保存せずにそのエディタを終了するには、簡単なヒントとして、Esc数回してから入力し:q!Enter。)

デフォルトのエディタを設定する方法はいくつかありますが、使用しているオペレーティングシステムが指定されていないため、特に推奨することは困難です。私は使用することをお勧めします:

 git config --global core.editor "name-of-your-editor"

...特定のエディターのグローバルgitプリファレンスを設定します。または、$EDITOR環境変数を設定することもできます。


あなたのvimチートシートは、特に「アイコンは千のコマンドラインの価値がある;-)」コミュニティから来た人々にとって価値があります
Philip Oakley

viemu.com/a-why-vi-vim.htmlが、vi / vimがまだここにある理由を説明するのに特に役立つことがわかりました。次に、キーボードのチートシートに移行しますviemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html
Philip Oakley

24

この状況での標準Viエディターでは、

  1. Escを押します
  2. 「:wq」と入力します(引用符は含みません)
  3. Enterキーを押します

15

変更されたすべてのファイルをコミットするためのコマンド:

git commit -a -m 'My commit comments'

-a =編集されたすべてのファイル

-m =次の文字列はコメントです。

これにより、ローカルドライブ/フォルダリポジトリにコミットされます。変更をgitサーバー/リモートでホストされているサーバーにプッシュする場合は、上記のコマンドの後に次のように入力します。

git push

GitHubのチートシートは非常に便利です。


13

システム環境はわかりませんが、次のように入力したようです。

git commit

そして、デフォルトのエディタが起動しました。最悪のシナリオ(あなたにとって)では、vimであった可能性があります:)

vimを終了する方法がわからない場合は、:qを使用してください。

さらに問題がある場合は、

git commit -m 'Type your commit message here'

開く別のエディターを選択する方法はありますか?ナノのように?
カークストロベック2011

1
確かに:これにより、デフォルトのエディターがnanoに変更されます 。gitconfig
global

二重引用符で
囲まれた

2

Gitは「インデックス」を使用してコミットを準備します。コミットする前に、インデックスに変更を追加したり、インデックスから変更を削除したりできます(貼り付けでは、で最大10個のファイルをすでに削除していますgit rm)。インデックスが希望どおりになったら、を実行しgit commitます。

通常、これは起動しvimます。テキストヒットを挿入するi<esc>は、通常モードに戻り、ヒットZZして保存して終了します(保存ZQせずに終了します)。voilà、あなたのコミットがあります


2

これは、以下を使用してコミットしようとしたときにメッセージを含めない場合に発生します。

git commit

エディター環境を起動します。入力:q!してEnterキーを押して終了します。

コミットせずにターミナルに戻るので、もう一度やり直してください。今回はメッセージを渡します。

git commit -m 'Initial commit'

1
これは、コンテキスト、何が起こっているのか、そして「奇妙なもの」を再び正常にする方法を説明することによって、受け入れられた答えよりも実際に私を助けました。
timmackay 2016年

1

すべての編集はすでにインデックスの一部になっているようです。したがって、コミットするには、commitコマンドを使用するだけです

git commit -m "My Commit Message"

私の本能はあなたがおそらくcacheあなたのデポにファイルが含まれることを望まないと言っているけれどもあなたのメッセージを見る。特に、プログラムの実行時にその場で構築されるものである場合。その場合は、.gitignoreファイルに次の行を追加する必要があります

httpdocs/newsite/manifest/cache/*

これはサブプロジェクトであり、ディレクトリ全体が削除されています。
カークストロベック2011

型を持つgitのすべてのコマンドが何を参照するにはgit --help、これはあなたのようなすべてのコマンド与えるだろうcommitpushpullclone特定のコマンドと何のスイッチが利用できるタイプです上のヘルプを表示するなどgit commit --helpgit push --helpこれはLinuxおよびMacのコマンドラインで動作するはずです。優れたコマンドラインアプリが必要な場合はgit-scm、このページでgithubがリンクしているものと同じものをお勧めします。help.github.com/mac-set-up-git
Ali

1

私は同じ問題に直面しました、私はタイプして:q!それを打つことによってEnter それを解決しましたそしてそれは私の問題を解決しましたその後次のコマンドを実行します git commit -a -m "your comment here"

これで問題が解決するはずです。


1
その答えはすでにここにあります(stackoverflow.com/a/7080907/2827823)...実際には2回なので、もう1つは必要ありません。
アソン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.