[解決済み] Sourcetree の .gitignore ファイルが機能しない
質問
私はmavenプロジェクトで作業しており、私のプロジェクト(評価)ルートフォルダの/targetフォルダに生成され保存されたファイルを無視したいです。私のgitリポジトリのルートには、次のエントリを持つ.gitignoreファイルがあります(backendはeclipseプロジェクト評価を含む単なるフォルダです)。
backend/Evaluation/logs/
backend/Evaluation/target/
何らかの理由でSourceTreeはこれら2つのフォルダに保存されたファイルを無視せず、私のプロジェクトをコンパイルすると、/targetフォルダ内のいくつかの.classファイルであるコミットされていない変更が存在するのです。
なぜこのようなことが起こるのでしょうか?また、.gitignoreのエントリーを以下のように変更してみました。
/backend/Evaluation/logs/**
が、これもうまくいかなかった。
何か思い当たることはありますか?
解決方法は?
例えば、誤ってリポジトリに追加されたファイルがあるとします。
stackoverflow$ echo this file is important > junkfile
stackoverflow$ git add junkfile
stackoverflow$ git ci -m 'added a file'
ある時点で、このファイルは重要でないことに気がつきましたので、そのファイルを
.gitignore
ファイルを作成します。
stackoverflow$ echo junkfile >> .gitignore
stackoverflow$ git ci -m 'ignore junkfile' .gitignore
後日、そのファイルにいくつか変更を加えます。
stackoverflow$ sed -i 's/ is / is not/' junkfile
そしてもちろん、このファイルが
.gitignore
というのは、すでにgitに追跡したいことを伝えているからです。
git status
が表示されます。
stackoverflow$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: junkfile
#
no changes added to commit (use "git add" and/or "git commit -a")
このファイルをリポジトリから削除する必要があります(作業ツリーからファイルを削除することなく)。 これを行うには
--cached
フラグを
git rm
:
stackoverflow$ git rm --cached junkfile
rm 'junkfile'
これは
delete
の操作で...
stackoverflow$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# deleted: junkfile
#
...だから、コミットする必要があるんだ。
stackoverflow$ git commit -m 'removed junkfile from repository'
[master 19f082a] removed junkfile from repository
1 file changed, 1 deletion(-)
delete mode 100644 junkfile
ここで
git status
git はこのファイルを無視します。
stackoverflow$ git status
# On branch master
nothing to commit, working directory clean
作業ツリーにはまだ残っているのに。
stackoverflow$ cat junkfile
this file is not important
関連
-
[解決済み] Git - node_modules フォルダをどこでも無視するようにしました。
-
[解決済み] 新しいBitbucketでリポジトリを削除するにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] ファイルをリセットしたり、特定のリビジョンに戻したりするにはどうすればよいですか?
-
[解決済み] Gitで変更された複数のファイルのうち、1つのファイルだけを隠す?
-
[解決済み] Git でファイルの一部分のみをコミットする
-
[解決済み] .gitignoreと.gitkeepの違いは何ですか?
-
[解決済み] .gitignoreで一部のファイル以外を無視するようにする
-
[解決済み】Gitバージョン管理でファイルの変更履歴を見る
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】GitHubのメッセージの意味: メールのプライバシー制限のためプッシュが拒否されました。
-
[解決済み】gitが「変更をコミットするか、マージする前にstashしてください」と言うのを解決するには?
-
[解決済み】なぜ「git commit」は私の変更を保存しないのですか?
-
[解決済み] [email protected] へのいくつかの参考文献のプッシュに失敗しました。
-
[解決済み】「オリジン/マスターへのプッシュが拒否されました」というエラーが常に発生するのはなぜですか?
-
[解決済み] 複数のコミットをチェリーピックする方法
-
[解決済み] SourceTree error:1407742E:SSLルーチン:SSL23_GET_SERVER_HELLO:tlsv1警告プロトコルバージョン
-
[解決済み] VSTS Git Fetch Failed with exit code: 128
-
[解決済み] git ls-remote と git ls-remote origin の違い。
-
[解決済み] git commit signing failed: secret key not available.