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

推薦する

MySQLとOracleのメタデータ抽出例分析

目次序文メタデータとは参照文書アドレスまずはMySQLについてお話しましょうOracleについて話し...

MySQL テーブルを削除するときに外部キー制約を無視するシンプルな実装

テーブルを削除することはあまり一般的ではありませんが、特に外部キーの関連付けがあるテーブルの場合は、...

TypeScript 2.0 マーク付き共用体型の詳細な説明

目次タグ付きユニオン型を使用した支払い方法の構築タグ付きユニオン型を使用した Redux アクション...

MySQL で乱数を生成し、文字列を連結する方法の例

この記事では、MySQL が乱数を生成し、文字列を連結する方法について例を使用して説明します。ご参考...

Javascript フロントエンド最適化コード

目次if判定の最適化1. 最も簡単な方法:判断2. より良い方法: スイッチ3. より良いアプローチ...

UbuntuはPythonスクリプトのサンプルコードを定期的に実行する

オリジナルリンク: https://vien.tech/article/157序文この記事では、Ub...

CentOSはexpectを使用してスクリプトやコマンドをバッチでリモート実行します

サーバーへのファイルのアップロード、ソフトウェアのインストール、コマンドやスクリプトの実行、サービス...

LinuxはRsync+Inotifyを使用してローカルとリモートのデータのリアルタイム同期を実現します。

0x0 テスト環境本社本番サーバーと支社バックアップサーバーはリモートデータバックアップが必要です...

VMware Workstation 15 Pro に Ubuntu 1804 をインストールするチュートリアル (画像とテキスト付き)

このメモはインストール チュートリアルです。実用的な意味はありません。記録のためだけに書いています。...

Mysql ALTER TABLE はフィールドを追加するときにテーブルをロックしますか?

目次MySQL 5.6以前MySQL 5.6以降要約する知らせMySQL 5.6以前更新手順元のテー...

MySQL 5.7.21 winx64 無料インストールバージョン設定方法グラフィックチュートリアル

MySQL 5.7.21 winx64無料インストールバージョンの設定方法、参考までに、具体的な内容...

setup+ref+reactive は vue3 の応答性を実装します

セットアップは、結合された API を記述するために使用されます。テンプレートが使用できるようにする...

CentOS8 ネットワークカード設定ファイル

1. はじめにCentOS8 システムの更新、新しいバージョンは人々に非常に快適に感じさせます。 こ...

Python Flask WeChat アプレットのログインプロセスとログイン API 実装コード

1. まずは効果を見てみましょうインターフェース要求によって返されるデータ: 2. 公式ログインフロ...

JS でパブリッシュ サブスクライブ モデルを作成する

目次1. シーン紹介2 コードの最適化2.1 ファンを増やす問題を解決する2.2 作品追加の問題を解...