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

推薦する

jQuery はピッカーをシミュレートしてスライド選択効果を実現します

この記事では、スライド選択効果を実現するピッカーをシミュレートするjQueryの具体的なコードを参考...

Vue-Jest自動テストの基本構成の詳しい説明

目次インストール構成よくある間違い事前テスト作業依存関係の扱いインスタンスとDOMを生成する要約する...

React antdはフォームの動的な増減を実現します

以前、動的フォームを記述しているときに落とし穴に遭遇しました。インデックスの添え字をキーとして使用す...

Linux Bash スクリプトを使用してユーザーを識別する方法の例

多くの場合、bash スクリプト内またはスクリプト自体内で直接 sudo を使用してコマンドを実行す...

VMware インストール後に仮想ネットワーク カードが表示されない問題について

1 問題の説明: 1.1 Windows 10 に VMware を初めてインストールする場合、また...

vscode で console.log を書く 2 つの簡単な方法の詳細な説明

(I) 方法 1: 事前にスクリプト タグ内に直接定義します。この HTML ファイルにのみ適用され...

MySQLクエリ最適化分析チュートリアルをステップバイステップで教えます

序文MySQL は、強力なクエリ機能、高いデータ一貫性、高いデータ セキュリティ、およびセカンダリ ...

ネイティブJSで禁止すべきメソッドの記述

目次ブロックレベル関数オブジェクトのプロトタイプを直接変更すると呼び出された人発信者評価ブロックレベ...

マウスのドラッグ効果を実現するJavaScript

この記事では、マウスドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...

Windows で virtualenv を使用して仮想環境を作成する方法 (2 つの方法)

オペレーティング システム: windows10_x64 Python バージョン: 3.6.8仮想...

mysql 10進データ型変換の実装

最近、次のデータ型のデータベースに遭遇しました:decimal(14,4)発生した問題は次のとおりで...

テキストエリアの残りの単語数を動的に取得する方法

仕事で、これまで一度も書いたことのないケースに遭遇しました。午後の半分をその作業に費やし、ついに書き...

vue-element-admin プロジェクトのインポートとエクスポートの実装

vue-element-admin インポートコンポーネントのカプセル化テンプレートとスタイルまず、...

Linux サーバーでフォルダー、ファイル、解凍コマンドを削除する方法

1. フォルダを削除する例: rm -rf /usr/java /usr/javaディレクトリとその...

Jenkins は Docker イメージを構築し、Harbor ウェアハウスにプッシュします

目次DockerファイルドキュメントJenkins の設定Spring Boot プロジェクトでは、...