Gitlab実践チュートリアルでは、関連する設定操作にgit configを使用します。

Gitlab実践チュートリアルでは、関連する設定操作にgit configを使用します。

この記事では、実際に発生した問題をもとに、git の設定に関する内容を紹介します。

コマンド: git config

関連する設定操作にはgit configを使用する

設定ファイル

全体として、git設定ファイルは3つのレベルに分かれており、優先度に関連する情報は次のように組み合わされています。

簡単に言えば、リポジトリに近いほど優先度が高くなり、プロジェクト レベル > ユーザー レベル > システム レベルの順になります。同じ設定が同時に表示された場合は、優先順位の高い設定が上位の設定を上書きします。

構成チェック

異なるパラメータを指定した git config を使用して、上記の 3 つの異なるレベルの設定を確認します。

同じ設定が上書きされる可能性があるため、git config -l を使用すると、git が正しいと判断した最終的な設定がリストされます。

問題現象

多くのクライアントでは、.gitignore を自動的に生成するときに問題が発生します。たとえば、ng new アクションでエラー メッセージが表示される次の git および OS バージョンなどです。

環境情報

liumiao$ git --version を実行します。
git バージョン 2.15.0
liumiao$ uname -a を回転します
Darwin liumiaocn 17.3.0 Darwin カーネル バージョン 17.3.0: 2017 年 11 月 9 日木曜日 18:09:22 PST; root:xnu-4570.31.3~1/RELEASE_X86_64 x86_64
liumiao$ の角度 
liumiao$ ng --version の角度
  _ _ ____ _ ___
  / \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
 / △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |
 / ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/// \_\_| |_|\__、|\__、_|_|\__、_|_| \____|_____|___|
        |___/
Angular CLI: 1.7.3
ノード: 8.9.1
OS: ダーウィンx64
角度: 
...
liumiao$ の角度

現象

liumiao$ ng new demo1 --skip-install を実行します
 demo1/README.md (1021 バイト) を作成します
 demo1/.angular-cli.json (1240 バイト) を作成します。
...demo1/src/app/app.component.ts の作成を省略 (207 バイト)
エラー: インクルード パス '~/.gitcinclude' を展開できませんでした
致命的: ファイル /usr/local/git/etc/gitconfig の 44 行目の設定が間違っています
プロジェクト「demo1」が正常に作成されました。
liumiao$ の角度

構成情報

liumiao$ cat /usr/local/git/etc/gitconfig liumiao$ cat /usr/local/git/etc/gitconfig を置き換えます。 
[コア]
  除外ファイル = ~/.gitignore
  legacyheaders = false # >git 1.5
  引用パス = false
[ユーザー]
# name = あなたの名前
# メールアドレス = あなたの@名前
[マージツール]
  バックアップを有効
[押す]
  デフォルト = シンプル # [ マッチング | シンプル ]
[色]
  ui = 自動
  インタラクティブ = 自動
[再パック]
  usedeltabaseoffset = true # >git 1.5
[エイリアス]
  s = ステータス
  a = !git add . && git ステータス
  au = !git add -u . && git ステータス
  aa = !git add . && git add -u . && git ステータス
  c = コミット
  cm = コミット -m
  ca = commit --amend # 注意
  ac = !git add . && git commit
  acm = !git add . && git commit -m
  l = log --graph --all --pretty=format:'%C(黄色)%h%C(シアン)%d%Creset %s %C(白)- %an, %ar%Creset'
  ll = ログ --stat --abbrev-commit
  lg = log --color --graph --pretty=format:'%C(太字白)%h%Creset -%C(太字緑)%d%Creset %s %C(太字緑)(%cr)%Creset %C(太字青)<%an>%Creset' --abbrev-commit --date=relative
  llg = log --color --graph --pretty=format:'%C(太字白)%H %d%Creset%n%s%n%+b%C(太字青)%an <%ae>%Creset %C(太字緑)%cr (%ci)' --abbrev-commit
  d = 差分
  マスター = チェックアウトマスター
  spull = svn リベース
  spush = svn dcommit
  alias = !git config --list | grep 'alias\\.' | sed 's/alias\\.\\([^=]*\\)=\\(.*\\)/\\1\\\t => \\2/' | sort
[include] # 1.7.10 時点 https://github.com/git/git/commit/9b25a0b52e09400719366f0a33d0d0da98bbf7b0
  パス = ~/.gitcinclude
  パス = .githubconfig
  パス = .gitcredential
#[github]
# ユーザー =
# トークン =
[差分]
  # git はコピー/名前変更の *検出* を行います。コピー/名前変更を追跡したい場合は、次のようにします。
  # http://stackoverflow.com/questions/1043388/record-file-copy-operation-with-git
  # 名前変更 = コピー
[差分 "exif"]
  テキスト変換 = exif
[資格情報]
  ヘルパー = osxkeychain
liumiao$ の角度

理由

原因は、~ の展開に問題があるようです。設定ファイル内で ~ をグローバル名に展開すると、この問題は一時的に解決します。しかし、上記と合わせると、これは実際にはシステムレベルの設定をユーザーレベルの処理に落とし込む方法であることがわかります。

修正方法

liumiao$ sudo cp /usr/local/git/etc/gitconfig /usr/local/git/etc/gitconfig.org を実行します。
パスワード:
liumiao$ echo $HOME を回転させます
/ユーザー/liumiao
liumiaocn:angualr liumiao$ echo ~
/ユーザー/liumiao
liumiao$ sudo vi /usr/local/git/etc/gitconfig を実行します。
liumiao$ の角度 
liumiao$ diff /usr/local/git/etc/gitconfig /usr/local/git/etc/gitconfig.org
2c2
< excludesfile = /Users/liumiao/.gitignore
---
> excludesfile = ~/.gitignore
44c44
< パス = /Users/liumiao/.gitcinclude
---
> パス = ~/.gitcinclude
liumiao$ の角度

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • GitHubと組み合わせるとSpringCloud Configが設定を読み取れない問題を解決
  • Spring Cloud Config が Git ストレージを使用する場合の 2 つの一般的な構成戦略の詳細な説明
  • 分散構成センターを構築するための GitLab との Spring Cloud Config 統合の詳細な説明
  • Config サーバーを Git 構成に接続するためのヒント

<<:  MySQL は正常に起動するがポートをリッスンしない場合の解決策

>>:  xtrabackup による MySQL データベースのバックアップと復元

推薦する

Vueは新しいウィンドウを開き、パラメータ転送のグラフィック例を実装します。

私が実現したい機能は、新しいウィンドウを開いて新しいページを表示することですが、パラメータを渡す必要...

UA による Web サイトのクロールを防ぐ Nginx のクローラー対策戦略

クローラー対策ポリシー ファイルを追加しました: vim /usr/www/server/nginx...

Vueはdivホイールのズームインとズームアウトを実装します

Vue プロジェクトで div ホイールのズームインとズームアウト、ドラッグ効果、キャンバス効果に似...

Tomcatはスレッドプールを使用してリモート同時リクエストを処理します。

Tomcatが同時リクエストを処理する方法を理解することで、スレッドプール、ロック、キュー、および...

CSS における z-index: 0 と z-index: auto の違い

最近、スタック コンテキストについて学習しています。学習の過程で、z-index が 0 の場合と ...

docker run 起動パラメータ コマンドを表示する方法 (推奨)

runlike を使用してコンテナの docker run 起動パラメータを表示します。 pipを...

CocosCreator Huarongdaoデジタルパズルの詳しい説明

目次序文文章1. パネル2. 華容島ソリューション3. コード4. 注記序文華容路とは何ですか? 誰...

MySQL InnoDB row_id 境界オーバーフロー検証方法の手順

背景クラスメートと row_id の境界問題について話し合ったので、ここで詳しく説明します。 Inn...

Dockerカスタムネットワーク実装

目次1. コンテナ相互接続を実現するためにネットワークをカスタマイズする2. ネットワーク接続1. ...

MySql 5.6.35 winx64 インストール詳細チュートリアル

注: データベースのバージョンの問題により、プロジェクトの起動時にエラーは発生しませんでしたが、デー...

React Nativeがシミュレータにリンクできない件について

React Native は、現在人気のオープンソース JavaScript ライブラリ React...

MySQL データ型 DECIMAL(N,M) における N と M の意味の詳細な説明

同僚から、MySQL データ型 DECIMAL(N,M) の N と M の意味を尋ねられました。言...

CSSアニメーション属性キーフレームの詳細な説明

コラムを更新してからどれくらい経ったでしょうか?半年ですか?今年の後半は、まさに離陸、つまり文字通り...

ES6 の Set および WeakSet コレクションの詳細な説明

目次セットは値が重複しない特別なコレクションです。セットコレクション基本API独自の価値判断セットを...

Linux で独自の Nexus プライベート サーバーを構築する方法

この記事では、Linuxサーバー上でDockerを使用してNexusプライベートサーバーを構築する方...