1

master ブランチへのチェックアウト中に、次のようになりました。

エラー: 次の追跡されていない作業ツリー ファイルは、チェックアウトによって上書きされます:
nbproject/private/config.properties
nbproject/private/private.properties
nbproject/private/private.xml
nbproject/project.properties
nbproject/project.xml

Please move or remove them before you can switch branches.  

Aborting

そのため、それらを削除し(これらのファイルをリポジトリの外の別の場所にバックアップしました)、再び切り替えることができました。

私がこれを取得した理由は次のとおりです。

dev はこれらのファイルを無視しています。そこには .gitignore ファイルが存在しないため、 master はそうではありません。

どちらもこれらのファイルを無視する必要があります。

さらに、これをリモート リポジトリにプッシュすると、それらの変更がそれらのリモート リポジトリにも反映されるはずです。

これが二度と起こらないように、その .gitignore ファイルをマスターに追加するにはどうすればよいでしょうか?

4

1 に答える 1

7

ファイルの追加.gitignoreは、他のファイルの追加と同じです。それを作成し、無視したいものを追加してコミットします。これらのファイルは、具体的には次のように無視できます。

echo /nbproject/private/config.properties >> .gitignore
echo /nbproject/private/private.properties >> .gitignore
echo /nbproject/private/private.xml >> .gitignore
echo /nbproject/project.properties >> .gitignore
echo /nbproject/project.xml >> .gitignore

git add .gitignore
git commit -m "Add some ignores."

影響を受けるすべてのブランチで同じことを行う必要があるでしょう。

しかし、あなたには何か他のことが起こっています。git がこれらのファイルが邪魔だと言っているのは、マスター ブランチで無視されているからではなく、マスター ブランチにコミットされているからです。IOW、それらは現在バージョン管理下にあります。それらを無視するだけでなく、バ​​ージョン管理からも削除する必要があると思います。これは、チームと調整して、マスターの誰もがファイルが消えることを知り、事前にバックアップできるようにすることです。

更新: MEM と私はこれについて話しました。別のクローンを作成し、master をチェックアウトし、( 経由で) 彼の dev ブランチから .gitignore を追加し、git show dev:.gitignore > .gitignoreそのリビジョンを ( 経由で) 彼の元のプロジェクトにフェッチして戻すことで、最終的に彼のリポジトリを修正しましたgit fetch /path/to/fix master:master。彼が新しいリビジョンを入手したら、それをリモートにプッシュしたので、他の全員もそれを入手できるようになりました。

于 2012-09-03T10:19:24.073 に答える