it-swarm-ja.com

Gitは初めてですが、なぜgit configにこれほど多くの構成が設定されているのですか?

Gitの使用は初めてで、ダウンロードしたばかりです。セットアップして、git config --listで非常に多くのプリセットを見つけて驚いた?何もプリセットされていないはずだと思いました。

git config --listの出力:

core.excludesfile=~/.gitignore
core.legacyheaders=false
core.quotepath=false
mergetool.keepbackup=true
Push.default=simple
color.ui=auto
color.interactive=auto
repack.usedeltabaseoffset=true
alias.s=status
alias.a=!git add . && git status
alias.au=!git add -u . && git status
alias.aa=!git add . && git add -u . && git status
alias.c=commit
alias.cm=commit -m
alias.ca=commit --amend
alias.ac=!git add . && git commit
alias.acm=!git add . && git commit -m
alias.l=log --graph --all --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(white)- %an, %ar%Creset'
alias.ll=log --stat --abbrev-commit
alias.lg=log --color --graph --pretty=format:'%C(bold white)%h%Creset -%C(bold green)%d%Creset %s %C(bold green)(%cr)%Creset %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
alias.llg=log --color --graph --pretty=format:'%C(bold white)%H %d%Creset%n%s%n%+b%C(bold blue)%an <%ae>%Creset %C(bold green)%cr (%ci)' --abbrev-commit
alias.d=diff
alias.master=checkout master
:
1
Sil

公式サイト( https://git-scm.com/downloads )ではなくSourceForgeからダウンロードする場合は、Biswapriyoが言うように、おそらく便宜上のものです。

必要に応じて、すべてを消去してクリーンを開始できます。問題ありません。 .gitconfigファイルをお気に入りのエディターで開いて、すべてまたは理解できないものだけを消去するだけです。通常は~/.gitconfigにあります。

しかし、とにかく、そこにはいくつかの便利なツールがあります。たとえば、aliasで始まるものはすべて、より少ないコードを書くためのショートカットです。

たとえば、次のように入力すると

git lg

それはあなたに同じ結果を与えるでしょう

git log --color --graph --pretty=format:'%C(bold white)%h%Creset -%C(bold green)%d%Creset %s %C(bold green)(%cr)%Creset %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative

これにより、短いコミットメッセージとその他の情報を含む色付きのグラフが作成されます。とても便利です。

とても便利ですが、私の意見ではまず慣れておく必要があります。 gitをまったく使用したことがない場合は、しばらくの間エイリアスを避け、必要に応じてエイリアスの使用を開始することをお勧めします。今使ってみると情報が多すぎるから。

2
Rodolfo Núñez

その出力に表示されるもののほとんどは、エイリアスコマンドです。

それらは合法的なコマンドの単なる代替手段であるため、それらを持っていても問題はありません。

たとえば、alias.cm=commit -mを使用すると、コマンドgit cm "some message"を入力し、Enterキーを押してコマンドを実行できます。これは、完全長コマンドgit commit -m "some message"を使用するのとまったく同じです。

表示されている出力の別の例では、git masterと入力する代わりに、git checkout masterと入力してマスターブランチをチェックアウトできます。

ショートカットを使用しない場合、リストされているエイリアスコマンドは使用されません。誤って恐れている場合は、選択したエディターで.gitconfigを開いて、構成を削除できます。

完全なgit config --list出力を見ずに、他に何があるかを確認するのは困難です。

それぞれ、または少なくとも1つについて質問がある場合は、 git-configドキュメント でそれらについて読むことができます。

1
DrZoo

git構成は複数の場所に保存できます。

  • システム全体(通常は/etc/gitconfig
  • ユーザー全体(通常は~/.gitconfig
  • および各gitリポジトリ内(.git/config

git configを呼び出すと、上記のすべてがこの順序で考慮され(後のステートメントが前のステートメントをオーバーライドします)、ファイルシステムのどこにいるかによって異なります。これは、gitリポジトリにいる場合はその構成が異なるためです。考慮されます。

gitをインストールすると、システム全体の構成に、インストールするgit「パッケージ」のメンテナが役立つと感じるデフォルト値がすでに入力されている可能性があります。以前のgitリポジトリの設定と同様に、変更した場合を除いて(また、Origin設定などのデフォルト値を除いて)、自分の個人設定はおそらく空です。

Git configのマニュアルページを見ると、次のことがわかります。

   --global
       For writing options: write to global ~/.gitconfig file rather than the repository .git/config, write to $XDG_CONFIG_HOME/git/config file if this file exists and the ~/.gitconfig file doesn't.

       For reading options: read only from global ~/.gitconfig and from $XDG_CONFIG_HOME/git/config rather than from all available files.

       See also the section called "FILES".

   --system
       For writing options: write to system-wide $(prefix)/etc/gitconfig rather than the repository .git/config.

       For reading options: read only from system-wide $(prefix)/etc/gitconfig rather than from all available files.

       See also the section called "FILES".

   --local
       For writing options: write to the repository .git/config file. This is the default behavior.

       For reading options: read only from the repository .git/config rather than from all available files.

       See also the section called "FILES".

そして、「ファイル」セクションには次のように書かれています。

   If not set explicitly with --file, there are four files where git config will search for configuration options:

   $(prefix)/etc/gitconfig
       System-wide configuration file.

   $XDG_CONFIG_HOME/git/config
       Second user-specific configuration file. If $XDG_CONFIG_HOME is not set or empty, $HOME/.config/git/config will be used. Any single-valued variable set in this file will be overwritten by whatever is in ~/.gitconfig. It is a good idea not to create this file if you sometimes use older versions of Git, as
       support for this file was added fairly recently.

   ~/.gitconfig
       User-specific configuration file. Also called "global" configuration file.

   $GIT_DIR/config
       Repository specific configuration file.

そしてまた:

ファイルは上記の順序で読み取られ、最後に見つかった値が前に読み取った値よりも優先されます。複数の値を取得すると、すべてのファイルのキーのすべての値が使用されます。

1
Patrick Mevzek