web-dev-qa-db-ja.com

gitignoreはファイルを無視しません

.gitignoreに何を入れても、notgitに以下のUserInterfaceState.xcuserstateファイルを無視させることができます。

$ git status
On branch master
Your branch is up-to-date with 'Origin/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:   .gitignore
    modified:  CalFoo.xcodeproj/project.xcworkspace/xcuserdata/wcochran.xcuserdatad/UserInterfaceState.xcuserstate

この投稿 にリストされている.gitignoreファイルを使用/編集しています。正確なパス名CalFoo.xcodeproj/project.xcworkspace/xcuserdata/wcochran.xcuserdatad/UserInterfaceState.xcuserstateを含むパターンに一致するものをすべて試してみましたが、役に立ちませんでした。

この特定の問題は、Xcodeを使用して初期gitリポジトリを作成し、後で here から.gitignoreファイルを追加するワークフローから発生します。 gitで以前に追跡されたファイルを無視することに対するより一般的な答えは、 この質問 から見つけることができます(タイトルに「gitignore」がなかったので、この投稿を検索で見つけたことはありません)。

37
wcochran

バージョン管理されていないファイルのみを無視できますが、そのファイルは既にgitに認識されています。

Gitにそのファイルを追跡させたい場合は、gitに無視するよう指示する必要はありません。

Gitにそのファイルを追跡させたくない場合は、git rmを使用すると、無視ルールが機能し始めます。

注意:git rmはファイルを削除します。git rm --cachedを使用して、ディスクからではなくリポジトリから削除します。

66
michas

同じ問題がありました。

最初に未解決のコード変更をコミットしてから、次のコマンドを実行します。

git rm -r --cached .

これにより、変更されたファイルがインデックス(ステージング領域)から削除され、次のコマンドが実行されます。

git add .

コミットする:

git commit -m ".gitignore working now"

Git rm --cached filenameを取り消すには、git add filenameを使用します。

18
Gaurav Sharma

GitHub上のファイルを無視する簡単な方法の1つは、ここで完全に説明されています https://help.github.com/en/articles/ignoring-files

GitHubへのプッシュを行う前に、プロジェクトフォルダーは空白にしておく必要があります。

1)ターミナルを開いて書き込みcd

プロジェクトフォルダーをターミナルにドラッグします。その後、次のようになります。

docmacbook$ cd /Users/docmacbook/Downloads/MyProjectFolder

2).gitignoreファイルを開き、無視するファイルを追加します。たとえば、私の.gitignoreファイルは次のようになります。

MyAppName.xcodeproj/xcuserdata
MyAppName.xcworkspace/xcuserdata
Pods
report.xml

3)CommitおよびPushGitHubへ。

この後、プロジェクトを移動するか、.gitignoreファイルが存在するフォルダーに新しいプロジェクトを作成し、無視したいファイルはGitHubにプッシュされません。

注:これらの手順は既存のプロジェクトでも機能すると思いますが、テストしていません。

0
Doca