Sourcetree で管理されている Bitbucket Git リポジトリがあります。
コミットしたいフォルダーが 2 つありますが、これらのフォルダーには一時ファイルしか含まれていないため、これらのフォルダー内のすべてのファイルを無視する必要があります。
どうやってやるの?
Sourcetree で管理されている Bitbucket Git リポジトリがあります。
コミットしたいフォルダーが 2 つありますが、これらのフォルダーには一時ファイルしか含まれていないため、これらのフォルダー内のすべてのファイルを無視する必要があります。
どうやってやるの?
Sourcetree ユーザーの場合: 特定のフォルダーを無視する場合は、このフォルダーからファイルを選択し、右クリックして [無視...] を実行します。「以下のすべてを無視: <YOUR UNWANTED FOLDER>」を無視できるポップアップ メニューが表示されます。
「無視」オプションがグレー表示されている場合は、「トラッキングの停止」オプションを選択する必要があります。その後、ファイルはステージング ファイルに追加され、赤い背景のアイコンにマイナス記号が表示され、ステージングされていないファイルリストのファイルのアイコンは紫色の背景に疑問符に変わります。ステージングされていないファイルのリストで、「無視」オプションが再び有効になりました。上記のように行うだけです。
これを .gitignore に追加します。
*
!.gitignore
私の知る限り、Git はフォルダーを追跡せず、ファイルのみを追跡するため、空のフォルダー (またはすべてのファイルが無視されるフォルダー) はコミットできません。たとえば、ビルド プロセスのあるステップのためにフォルダーが必要な場合は、代わりにビルド ツールでフォルダーを作成することができますか? または、無視されていない空のファイルを 1 つフォルダーに入れてコミットすることもできます。
これについて少なくとも1時間頭を悩ませた後、他の人が行ったコメントを拡張するためにこの回答を提供します。フォルダー/ディレクトリを無視するには、次の手順を実行します。プロジェクトのルートに .gitignore ファイル (正確には「.gitignore」という名前) がない場合は、除外するフォルダーにダミーのテキスト ファイルを作成します。ソース ツリー内で右クリックし、[無視] を選択します。このようなポップアップが表示されます。
「下のすべて」を選択し、ドロップダウン リストから無視するフォルダーを選択します。これにより、ルート ディレクトリに .gitignore ファイルが作成され、その中にフォルダー仕様が配置されます。
ルート フォルダーに .gitignore ファイルが既にある場合は、上記と同じ方法に従うか、単に .gitignore ファイルを編集して、除外するフォルダーを追加することができます。ただのテキストファイルです。Windows ユーザーが慣れているように、バックスラッシュではなくスラッシュをパス名に使用していることに注意してください。Windows Explorer で手動で .gitignore テキスト ファイルを作成しようとしましたが、名前のない (つまり、拡張子のみの) ファイルを作成できませんでした。
.gitignore とファイル仕様を追加しても、既に追跡されているファイルには影響しないことに注意してください。 これらをすでに追跡している場合は、追跡を停止する必要があります。(フォルダーまたはファイルを右クリックし、[追跡の停止] を選択します。) その後、緑色/クリーンまたは黄色/変更済みのアイコンから、赤色/削除済みのアイコンに変わります。次回のコミットで、ファイルはリポジトリから削除され、その後、青色/無視されたアイコンで表示されます。別の寄稿者が、特定のファイルで Ignore が無効になっている理由を尋ねました。私は、彼が既に追跡されているファイルを無視しようとしたためだと思います。青いクエスチョン マークのアイコンが付いているファイルのみを無視できます。
他の人が述べたように: git はフォルダーを追跡せず、ファイルのみを追跡します。
次のコマンド (または同等のロジック) を使用して、フォルダーが存在することを確認できます。
echo "*" > keepthisfolder/.gitignore
git add --force keepthisfolder/.gitignore
git commit -m "adding git ignore file to keepthisfolder"
ファイルが存在するということは、リポジトリをチェックアウトするすべての人がフォルダを持っていることを意味します。
gitignore ファイルの内容は、その中のすべてが無視されることを意味します
.gitignore ファイル自体を無視しない必要はありません。一度犯したら何の役にも立たないルールです。
また
すべての無視定義を同じ場所に保持したい場合は、次のような内容でプロジェクトのルートに .gitignore を作成できます。
*.tmp # example, ignore all .tmp files in any folder
path/to/keepthisfolder
path/to/keepthatfolder
フォルダが存在することを確認する
touch path/to/keepthisfolder/anything
git add --force path/to/keepthisfolder/anything
git commit -m "ensure keepthisfolder exists when checked out"
「なんでも」は文字通りなんでもいい。一般的に使用される名前は、.gitignore、.gitkeep、empty です。
無視オプションがグレー表示されている場合は、無視する前にファイルの追跡を停止する必要があります。ファイルを右クリックして、[トラッキングの停止] をクリックするだけです。
その横に青いアイコンが表示されます。もう一度右クリックして、[無視] をクリックします。