web-dev-qa-db-ja.com

Git属性ファイルを作成する方法

here の説明に従って、属性ファイルをGitリポジトリに追加したいと思います。リポジトリのルートフォルダに.gitattributesを含める必要があることを示しています。

  • .gitattributesは単なるファイルですか、それともフォルダですか?このファイル/フォルダを作成するにはどうすればよいですか?

    Windowsは次のエラーを発生させます:

    "ファイル名がないとファイルを作成できません"

    "ファイル名を入力する必要があります"

  • どこにファイルを追加すればよいですか?リポジトリルートの下のX:\PATH\TO\Repository\またはGitフォルダーの下のX:\PATH\TO\Repository\.git\

  • 他のコントリビューターが私のリポジトリを複製/フォークするために属性が適用されますか?

    例: GitHubまたはGitLabにプッシュし、他の一部がコピーをプルダウンした場合、追加した属性がそのマシンにも適用されますか?

関連:Git Ignore

注:Windowsプラットフォームで TortoiseGit とmsysgitを使用しています(役立つ場合)。

26
Carel

.gitattributesはファイルですか、それともフォルダですか?どうやって作成しますか?

  • Windows:Windowsエクスプローラ内で新しいテキストファイルを作成し(右クリック>新規>テキストファイル)、名前を次のように変更します(ショートカット:F2)。続く

    .gitattributes.
    

    注:それはDOT + gitattributes + DOT、ウィンドウは、適切なファイル名を生成するために、末尾のDOTを削除します

  • Linux:とそのバリアント(Gentoo、Raspberry Pi、Mac OSなど)

    touch .gitattributes
    
  • または:Git属性 リポジトリのクローンを作成し、リポジトリに適用可能な.gitattributesファイルを移動/コピーします(脚注1および2)。

どこにファイルを追加すればよいですか?リポジトリルートの下、X:\PATH\TO\Repository\、またはGitフォルダーの下、X:\PATH\TO\Repository\.git\

Git属性ファイルを追加できる場所は2つあります

    \Repository                        (1)
    \Repository\.git\info\attributes   (3)
  1. ここに.gitattributesファイルを追加すると、属性が「ユニバーサル」に設定されます。
  2. ここで.gitattributesファイルを作成すると、属性が「個人的に」設定されます。これは、自分のマシン上のリポジトリです。賢明ではありませんが、 正当な理由 があるかもしれません。

他のコントリビューターが私のリポジトリを複製/フォークするために属性が適用されますか?

ファイルがリポジトリに committed である場合、リポジトリが複製されるときに複製され、属性がプロジェクトの寄稿者のマシンに強制的に適用されます(脚注:3および4)。属性は、.gitattributesがプロジェクトルートX:\PATH\TO\Repository\.gitignoreに追加されると「グローバル」に適用され、サブフォルダX:\PATH\TO\Repository\SOME\SUB-FOLDER\.gitignoreに追加されると「ローカル」に適用されます。


脚注:

  1. 大容量ファイルストレージ(Git LFS)を使用している場合は、これらのファイルがLFSに対応していない場合や、その逆の場合があるため、注意が必要です。さらに、追跡を設定すると、LFSが.gitattributesを作成します。
  2. 偶然にも Git Ignore のリポジトリがあります。
  3. 最初、私が最初に質問したとき、行末の正しい処理について心配していました。 .gitattributesはこれをうまく処理しますが、各コントリビューターが自分のマシンでgitを適切に構成する方が良いです。
  4. .gitattributesファイルに.gitignoreを追加するバカにはなりません。はい、これは「個人的に」属性を適用しますが、ある人は「グローバルに」あなたの回避策をいつか上書きし、涙と抱擁...たくさんの抱擁があります!!!
26
Carel