- 投稿日:2021-01-13T17:43:06+09:00
【Git】Matched one or more prohibited patternsが出てきたときの対処法
前提
コンフリクトを解消した後に
% git add . % git commitを実行すると
エラー内容
[ERROR] Matched one or more prohibited patterns Possible mitigations: - Mark false positives as allowed using: git config --add secrets.allowed ... - Mark false positives as allowed by adding regular expressions to .gitallowed at repository's root directory - List your configured patterns: git config --get-all secrets.patterns - List your configured allowed patterns: git config --get-all secrets.allowed - List your configured allowed patterns in .gitallowed at repository's root directory - Use --no-verify if this is a one-time false positiveが表示されて次に進めなくなります。
そこで、エラー文を読んでみると、最後の行に
--no-verify
を使ってみてと書いてありますね。
これっぽいです。結論、オプションで
--no-verify
を使います% git add . % git commit --no-verifyこれで
commit merge
ができると思います。
以上です。※余談
個人でブログやってます。興味がある方はぜひ。
- 投稿日:2021-01-13T12:34:46+09:00
Gitリポジトリの統合
はじめに
Gitの移行をしたいと思い,以下を参考にやってみました。
Gitレポジトリを移行する方法
ところが,この方法だと移行先のリポジトリに既にコミットがある場合,上書きされてしまいます。
そのため,移行先のリポジトリにコミットがあった場合でもそのコミットを残して移行できる方法を調べたので,その方法を備忘録として残したいと思います。手順
- 移行先のリモートリポジトリを作成・ローカルにクローン
- リモートリポジトリに移行元のリポジトリを追加
- 移行元のリポジトリの内容をfetch
- 移行元のmasterブランチの内容を,移行先のmasterブランチにマージ
- 移行先のリポジトリをリモートにプッシュ
移行先のリポジトリをクローン
Github上で新規リポジトリを作成し,ローカルにクローン
$ git clone git@github.com:target-repository.git $ cd target-repositoryリモートリポジトリに移行元のリポジトリを追加
ローカルに存在している移行元のリポジトリをリモートリポジトリとして登録
$ git remote add source /path/to/source-repository移行元のリポジトリの内容をfetch
移行元のリポジトリの内容を,
fetch
コマンドを用いて取得$ git fetch source移行元のmasterブランチの内容を,移行先のmasterブランチにマージ
$ git merge --allow-unrelated-histories source/master
--allow-unrelated-histories
オプションを用いることで,共通の祖先を持たないブランチ同士を強制的にマージすることができる移行先のリポジトリをリモートにプッシュ
$ git push -u origin HEAD参考
- 投稿日:2021-01-13T02:00:10+09:00
GitHub
・GitHubにリモートリポジトリを作成する
・ローカルリポジトリにリモートリポジトリを登録する
・ローカルリポジトリのブランチ名を変更する
・登録したリモートリポジトリへプッシュする
・GitHubのリモートリポジトリにプッシュされたか確認するgit remote add origin リモートリポジトリURL
ローカルリポジトリにリモートリポジトリを登録するgit remote -v
ローカルリポジトリに登録されたリモートリポジトリの一覧を表示するgit push origin master
登録したリモートリポジトリへプッシュするoriginのURLが間違っている場合
git remote remove origin
git remote add origin リモートリポジトリURLローカルリポジトリを作りなおして、既存のリモートリポジトリにプッシュする場合
git push -f origin master
- 投稿日:2021-01-13T01:42:31+09:00
Gitコマンド
git init
リポジトリを作成し、Gitのバージョン管理下に置きます。git status
リポジトリを作成し、commit-tutorial/をGitのバージョン管理下に置きます。git add
ワークツリーから変更箇所をステージしてインデックスに移動させるgit commit
コミット、つまりバージョンを作るgit log
現在コミットした履歴を確認git diff
前回のコミットと、今回変更したファイルの差分を抽出-mオプションを使用してコミットメッセージを直接入力
git commit -m ""インデックスとローカルリポジトリの基準コミットとの差分
git diff --cached
- 投稿日:2021-01-13T01:33:56+09:00
Gitの基本概念
リポジトリ
バージョン管理をするには、1つ1つのバージョンの情報(いつ、誰が、どのファイルのどの箇所を、どんなメッセージを残して変更したか)を保存しておく必要があります。
その保存先のことをリポジトリと呼びます。
リポジトリは、ただの入れ物(箱)です。リポジトリという箱の中にGitで保存しているバージョン情報が保管されているとイメージしてください。
また、リポジトリには2つ種類があります。
ローカルリポジトリ
リモートリポジトリローカルリポジトリは、実際に作業を行うリポジトリのことで、自分のPCやCloud9上で作られるリポジトリ。
リモートリポジトリはGitHub上に作られる。コミット
Gitでは、1つ1つのバージョンのことを、コミットと呼びます。また、コミットを作成することをコミットすると言います。
リビジョン番号(1e010f4572625f3741a306b8e996cのような値)
コミットした人(誰が)
コミットした日時(いつ)
コミットしたときのファイル内容の差分(どのファイルの、どの箇所を)
コミットメッセージ(どんなメッセージを残して)
親コミット(1つ前のコミット)のリビジョン番号リビジョン番号は、コミットを一意に指定できるIDのような役割を果たします。
コミットメッセージは、コミットするときに必須のメッセージで、どういった内容の変更をコミットするのか簡単なメッセージにまとめて書いておきます。
リポジトリ内では、1つ1つのコミットが親コミットのリビジョン番号を持っているので、コミットは親コミットを辿ることで連なるように変更履歴を管理できているのです。
ワークツリーとインデックス
ワークツリーとは、Gitでバージョン管理されているフォルダ内のことです。
次に、ワークツリーから次のコミットに含めたいファイルの変更箇所を選択します。変更箇所を選択することを、ステージすると言います。ステージされた変更箇所はインデックス(ステージングエリアとも言う)に反映されます。インデックスはローカルリポジトリへコミットする一歩手前で、コミットする変更箇所を選ぶ段階です
最後にコミットを行い、バージョンが1つ進みます。このときコミットされる変更箇所は、インデックスにステージされた変更箇所のみです。
インデックスはコミットを行う前に、ワークツリーの変更箇所の中から関連性のある変更のまとまりを選択するという重要な役割があるのです。
- 投稿日:2021-01-13T01:24:39+09:00
Gitが保存する履歴情報
・Gitが保存する履歴情報
いつ
誰が
どのファイルの、どの箇所を
どんなメッセージを残して変更したか・Gitを使うことで解決すること
ファイルを変更する際に、バックアップファイルを作成する必要がない
変更する前のファイルの内容にいつでも戻れるので、安心してファイルを変更できる
複数人でファイルを変更したり、共同開発を行うことができる