Sourcetreeで管理されているBitbucketGitリポジトリがあります。
コミットしたいフォルダーが2つありますが、一時ファイルしか含まれていないため、これらのフォルダー内のすべてのファイルを無視する必要があります。
どうやってやるの?
Sourcetreeで管理されているBitbucketGitリポジトリがあります。
コミットしたいフォルダーが2つありますが、一時ファイルしか含まれていないため、これらのフォルダー内のすべてのファイルを無視する必要があります。
どうやってやるの?
回答:
これを.gitignoreに追加します。
*
!.gitignore
.gitginore
はSourceTreeは必要ありません。これは通常のファイルであり、無視するコンテンツのディレクトリに作成するだけです。
Sourcetreeユーザーの場合:特定のフォルダーを無視する場合は、このフォルダーからファイルを選択して右クリックし、「無視...」を実行します。「下のすべてを無視する:<YOUR UNWANTEDFOLDER>」を無視できるポップアップメニューが表示されます。
[無視]オプションがグレー表示されている場合は、[追跡の停止]オプションを選択する必要があります。その後、ファイルは赤い背景アイコンのマイナス記号でステージングされたファイルに追加され、ステージングされていないファイルリストのファイルのアイコンは紫色の背景の疑問符に変わります。これで、[ステージングされていないファイル]リストで、[無視]オプションが再び有効になります。上記のようにしてください。
私の知る限り、Gitはフォルダーを追跡せず、ファイルのみを追跡します。そのため、空のフォルダー(またはすべてのファイルが無視されるフォルダー)をコミットすることはできません。たとえば、ビルドプロセスの一部のステップのためにフォルダーが存在する必要がある場合は、代わりにビルドツールにフォルダーを作成させることができますか?または、無視されない空のファイルを1つフォルダーに入れて、コミットすることもできます。
これについて少なくとも1時間頭を殴った後、他の人が行ったコメントを拡張するために、この回答を提供します。フォルダ/ディレクトリを無視するには、次の手順を実行します。プロジェクトのルートに.gitignoreファイル(正確には「.gitignore」という名前)がない場合は、除外するフォルダにダミーのテキストファイルを作成します。ソースツリー内で右クリックし、[無視]を選択します。このようなポップアップが表示されます。
「下にあるものすべて」を選択し、ドロップダウンリストから無視するフォルダを選択します。これにより、ルートディレクトリに.gitignoreファイルが作成され、その中にフォルダ仕様が配置されます。
ルートフォルダにすでに.gitignoreフォルダがある場合は、上記と同じ方法に従うか、.gitignoreファイルを編集して除外するフォルダを追加することができます。単なるテキストファイルです。Windowsユーザーが慣れているように、パス名にはバックスラッシュではなくスラッシュを使用することに注意してください。Windowsエクスプローラーで手動で.gitignoreテキストファイルを作成しようとしましたが、名前のない(つまり拡張子のみの)ファイルを作成できませんでした。
.gitignoreとファイル指定を追加しても、すでに追跡されているファイルには影響しないことに注意してください。 すでにこれらを追跡している場合は、追跡を停止する必要があります。(フォルダまたはファイルを右クリックして、[追跡の停止]を選択します。)次に、緑色/クリーンまたは黄色/変更されたアイコンから赤色/削除されたアイコンに変化するのがわかります。次のコミットで、ファイルはリポジトリから削除され、その後、青色/無視されたアイコンで表示されます。別の寄稿者は、特定のファイルに対して無視が無効になっている理由を尋ねました。これは、すでに追跡されているファイルを無視しようとしたためだと思います。青い疑問符アイコンが付いているファイルのみを無視できます。
他の人が述べたように: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です。
Sourcetreeの場合:指定されたフォルダー内のファイルは無視してください。Sourcetreeは、そのフォルダ内のすべてのファイルを無視するかどうかを尋ねます。パーフェクトだ!
*
手段は、すべてのファイルを無視し、!.gitignore
手段はファイル自体を無視しないでください