2017-03-24 17 views
0

私はgitをはじめて使用しており、コミットしようとしています。すべての.projectファイルと.settingsファイルを無視したいので、.gitignoreファイルに行き、.project.settingsを追加して保存しました。私がしたとき、.settingsファイルはもう表示されませんが、私はgit -statusを実行すると私の.projectファイルが表示されます。Gitは私の.projectファイルを除外しないで無視します

enter image description here

+1

私の推測では、 '.project'ファイルは既に以前にコミットされていると思います。いずれにせよ、 'git rm --cached .project'を実行すると、その問題を解決するはずです。 '.xml'と' .java'ファイルが別々に表示される理由は、Gitがこれらのファイルを追跡していて、それらが変更されたがまだステージングされていないことを伝えています。最初に 'git add 'を使ってそれらを実行してからコミットしてください。 –

+0

@TimBiegeleisen THanks!しかし、なぜ彼らは両方がunstagedされている場合、彼らは別のセクションにありますか?それらはすべて1つのセクションにリストされるべきではありませんか? – Robben

+0

@TimBiegeleisenそして、うまくいけば、私が 'git rm --cached'をしたときにうまくいった。そのコマンドは何をしていますか? – Robben

答えて

1

あなたgit status出力はあなたの2種類のファイルを示している:また、なぜ.jarファイルは別のセクションで.xmljavaファイルがあるをコミットするために上演していない

  • 変更

これらはGitが追跡しているファイルであり、これらのファイルは前回のコミット以降に変更されています。しかし、変更はまだ行われていません。 git addを使用して変更をステージングしない限り、コミットされません。なぜ.projectはGitリポジトリによって追跡されているとして表示されるための最も可能性のある説明は、その後、あなたが本当にちょうど仕事を始めたと仮定すると、

git add path/to/web.xml 

あなたは何とかそれを追加したことをされています。ここでは、web.xmlファイルに変更をステージしまう方法です。この問題を解決するには、あなたが使用して試すことができます:

git rm --cached .project 

これはGitリポジトリによって追跡されているから.projectファイルを削除します。リモートリポジトリからも削除されますが、まだ作業を開始してまだプッシュしていないので、これは問題です。

  • 人跡未踏のファイル

これらは、Gitが完全に無視しているファイルです。 Gitの観点からは、これらのファイルは存在しません。多くのJARファイルがuntrackedとしてリストされていることがわかります。一般に、バイナリファイル、特に依存関係をGitリポジトリに追加するのは悪い考えです。ソースファイルがuntrackedと表示されている場合は、git addを実行してそのファイルをGitに追加することもできます。

Gitリポジトリにバイナリを追加するのが悪い習慣であると一般的に考えられる理由は、Gitはバイナリのdiffsをうまく処理しないからです。 1MBのJARファイルを追加するとします。それが変わるたびに、オープンソースのものをやっているとかなり頻繁になるかもしれませんが、diffはそのバイナリ用に保存されなければなりません。しかし、Gitはdiffを古いファイルを削除し、それを新しいファイルのの内容のに置き換えると解釈することがよくあります。言い換えれば、Gitは基本的に各変更のバイナリ全体をバージョン化します。時間が経つと、リポジトリが大きくなって肥大化し、履歴からそれらのバイナリを取り除くことが困難になることがあります。したがって、絶対に必要な場合を除いて、Gitリポジトリにバイナリを保存することは避けてください。

+0

ありがとう!最後の点、つまりjarファイルについて。私はこれらのjarファイルをコミットする必要があります。Jarファイルをコミットするのは悪い習慣ですか? – Robben

+0

これらのJARファイルをコミットする必要はほとんどありません。通常、JARファイルは、MavenやGradleのようなツールによって維持管理され、バージョン管理されます。パブリックなJARリポジトリに、Gitではなく、それらをバージョン管理することを心配してください。バイナリをGitリポジトリに追加すると、問題の世界を作り出すことができます。 –

+0

私は見る!それを指摘してくれてありがとう。このプロジェクトにはmavenやgradleは使用しません。私たちはアリだけを使用します。私はそれについて私のマネージャーに話しています。 – Robben

関連する問題