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 データベースのバックアップと復元

推薦する

jsオブジェクト指向カプセル化カスケードドロップダウンメニューリストの実装手順

この例で開発されたカスケード ドロップダウン メニューは、既存の JSON データに基づいて作成され...

CocosCreatorがスキル冷却効果を実装

CocosCreatorがスキルCD効果を実現多くのゲームにはスキルがあります。プレイヤーがスキルボ...

MySQL データベースのエンコーディングを utf8mb4 に変更する方法

utf8mb4 エンコーディングは utf8 エンコーディングのスーパーセットであり、utf8 と互...

Linux システム Docker への ASP.NET Core アプリケーションのデプロイのプロセス分析

目次1. システム環境2. 運用プロセスと途中で遭遇した問題1. システム環境1. Tencent ...

React+TS を使用したシンプルな Jira プロジェクトを実装するためのベスト プラクティス

トレーニングのための一連のプロジェクト反応+ts内容は少ないですが、フックのカプセル化、ts ジェネ...

Tomcat Nativeを使用してTomcat IO効率を向上させる方法の詳細な説明

目次導入Tomcatへの接続方法APR と Tomcat ネイティブtomcat で APR を使用...

CSS3 で Taobao に空白スペースを実装する方法

Taobao用の空白スペースを作成します。 ブラウザページを縮小すると、コンテンツ領域は縮小されませ...

CentOS 7 でソースコードから Openssh をインストールする方法

環境: CentOS 7.1.1503 最小インストール依存パッケージをダウンロードします: yum...

MySQL で distinct メソッドを使用する詳細な例

明確な意味: distinctive は、一意のレコードの数を照会するために使用されます。つまり、d...

CSS 位置プロパティが絶対の場合のパーセンテージ値の計算

位置が絶対の場合、関連する属性のパーセンテージは、参照先の要素 (包含ブロック) を基準として計算さ...

CSS で平均レイアウトを実現するために負のマージンを使用する例

均等に分散されたレイアウトの場合、通常はネガティブ マージン方式を使用します。次の図は平均的なレイア...

Linux で文字化けしたファイルや特殊文字のファイルを削除する方法

エンコーディングの理由により、Linux サーバーに中国語のファイルやディレクトリをアップロードまた...

Linux で MySQL 8.0 バージョンをアンインストールする方法

1. MySQLをシャットダウンする [root@localhost /]# サービスmysqldを...

Dockerイメージの圧縮と最適化操作

Docker が今日非常に人気がある理由は、主にその軽量性、迅速な展開、およびリソースの利用にありま...

HTML(divレイヤー)を介してFLASHにリンクを追加するための実装コード

今日、クライアントが広告を掲載したいのですが、提供された素材は Flash です。私たちはあまり気に...