6

git 1.8混合環境(OSX、Linux、Windows)でセットアップしており、英語以外の文字を使用するファイル名があります。OSXシステムcore.precomposeunicodeで設定する必要があることを読みました。true

下位互換性については考慮していません。私たち、開発者にとって物事をシンプルに保つことに関心を持っています。構成について説明する必要はありませんgit

つまり、そのフラグをグローバルに(中央のgitサーバーで)設定しても安全ですか?それは私たちが必要とする一貫性を強制しますか?そうしない理由はありますか?

4

1 に答える 1

4

いいえ、それは機能しません。分散バージョン管理システムには中央のgitサーバーのようなものはありません-少なくとも技術的な意味では。

各開発者には、変更をチェックインする独自のリポジトリがあります。これらの変更が中央として宣言したリポジトリにプッシュされると、データは再処理されません。

すべてのローカルリポジトリでその構成を設定する必要があります。
残念ながら、.gitattributesを使用する代替手段もありません。

開発者によって複製される特定のリポジトリのローカルオプションもオプションではありません。次の簡単な実験はこれを示しています:

d:\Temp\Origin>git init
Initialized empty Git repository in d:/Temp/Origin/.git/

d:\Temp\Origin>git config --local --add core.autocrlf input
d:\Temp\Origin>git config --local --list
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
core.hidedotfiles=dotGitOnly
core.autocrlf=input
d:\Temp\Origin>cd ..
d:\Temp>git clone d:\Temp\Origin Developer
Cloning into 'Developer'...
warning: You appear to have cloned an empty repository.
done.

d:\Temp>cd Developer

d:\Temp\Developer>git config --local --list
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
core.hidedotfiles=dotGitOnly
remote.origin.url=d:\Temp\Origin
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master

からクローンを作成しただけですがgit config --local --listOriginリスト内の呼び出しとcore.autocrlf=input同じコマンドが実行されDeveloperないことに注意してください。 これは、リポジトリローカル構成値が複製されていないことを示しています。DeveloperOrigin

于 2013-03-05T18:51:56.407 に答える