20210113のGitに関する記事は6件です。

【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ができると思います。
以上です。

余談
個人でブログやってます。興味がある方はぜひ。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Gitリポジトリの統合

はじめに

Gitの移行をしたいと思い,以下を参考にやってみました。
Gitレポジトリを移行する方法
ところが,この方法だと移行先のリポジトリに既にコミットがある場合,上書きされてしまいます。
そのため,移行先のリポジトリにコミットがあった場合でもそのコミットを残して移行できる方法を調べたので,その方法を備忘録として残したいと思います。

手順

  1. 移行先のリモートリポジトリを作成・ローカルにクローン
  2. リモートリポジトリに移行元のリポジトリを追加
  3. 移行元のリポジトリの内容をfetch
  4. 移行元のmasterブランチの内容を,移行先のmasterブランチにマージ
  5. 移行先のリポジトリをリモートにプッシュ

移行先のリポジトリをクローン

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

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Gitコマンド

git init
リポジトリを作成し、Gitのバージョン管理下に置きます。

git status
リポジトリを作成し、commit-tutorial/をGitのバージョン管理下に置きます。

git add
ワークツリーから変更箇所をステージしてインデックスに移動させる

git commit
コミット、つまりバージョンを作る

git log
現在コミットした履歴を確認

git diff
前回のコミットと、今回変更したファイルの差分を抽出

-mオプションを使用してコミットメッセージを直接入力
git commit -m ""

インデックスとローカルリポジトリの基準コミットとの差分
git diff --cached

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Gitの基本概念

リポジトリ

バージョン管理をするには、1つ1つのバージョンの情報(いつ、誰が、どのファイルのどの箇所を、どんなメッセージを残して変更したか)を保存しておく必要があります。

その保存先のことをリポジトリと呼びます。

リポジトリは、ただの入れ物(箱)です。リポジトリという箱の中にGitで保存しているバージョン情報が保管されているとイメージしてください。

また、リポジトリには2つ種類があります。

ローカルリポジトリ
リモートリポジトリ

ローカルリポジトリは、実際に作業を行うリポジトリのことで、自分のPCやCloud9上で作られるリポジトリ。
リモートリポジトリはGitHub上に作られる。

コミット

Gitでは、1つ1つのバージョンのことを、コミットと呼びます。また、コミットを作成することをコミットすると言います。

リビジョン番号(1e010f4572625f3741a306b8e996cのような値)
コミットした人(誰が)
コミットした日時(いつ)
コミットしたときのファイル内容の差分(どのファイルの、どの箇所を)
コミットメッセージ(どんなメッセージを残して)
親コミット(1つ前のコミット)のリビジョン番号

リビジョン番号は、コミットを一意に指定できるIDのような役割を果たします。

コミットメッセージは、コミットするときに必須のメッセージで、どういった内容の変更をコミットするのか簡単なメッセージにまとめて書いておきます。

リポジトリ内では、1つ1つのコミットが親コミットのリビジョン番号を持っているので、コミットは親コミットを辿ることで連なるように変更履歴を管理できているのです。

ワークツリーとインデックス

ワークツリーとは、Gitでバージョン管理されているフォルダ内のことです。

次に、ワークツリーから次のコミットに含めたいファイルの変更箇所を選択します。変更箇所を選択することを、ステージすると言います。ステージされた変更箇所はインデックス(ステージングエリアとも言う)に反映されます。インデックスはローカルリポジトリへコミットする一歩手前で、コミットする変更箇所を選ぶ段階です

最後にコミットを行い、バージョンが1つ進みます。このときコミットされる変更箇所は、インデックスにステージされた変更箇所のみです。

インデックスはコミットを行う前に、ワークツリーの変更箇所の中から関連性のある変更のまとまりを選択するという重要な役割があるのです。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Gitが保存する履歴情報

・Gitが保存する履歴情報

いつ
誰が
どのファイルの、どの箇所を
どんなメッセージを残して変更したか

・Gitを使うことで解決すること

ファイルを変更する際に、バックアップファイルを作成する必要がない
変更する前のファイルの内容にいつでも戻れるので、安心してファイルを変更できる
複数人でファイルを変更したり、共同開発を行うことができる

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む