【Git】ベアリポジトリとはなにか

目次

ベアリポジトリとは

ベア(bare)とは

露出した、本来あるべき物が無いという意味がある。

つまり

これをGitのシステムとして解釈すると、「本来あるべき物が無い」=「ワーキングディレクトリがない」という意味になる。
更新履歴のみを持っているリポジトリということになる

リモートサーバー上に「ベアリポジトリ」を作成して、ローカルで編集したリポジトリを管理するために使う(GitHubと同じ動作をする)

作成時の注意点

  • ベアリポジトリを作る場合のファイル名は末尾に.gitをつける必要がある

【Git】タグの扱い方

タグはなんのためにあるのか

コミットを指定するためにSHA 1IDを使用するが、毎回選択するのは面倒くさいし間違える可能性があるので、よく使う可能性のあるコミットに命名することで、いちいちSHA 1IDを指定しなくてよくできる

コミットにタグを追加する

タグをつける

1
git tag タグ名 タグをつけたいSHA1

タグをつけるときは、-mスイッチを使用すればメッセージをつけることもできる

1
git tag タグ名 -m "コメント" タグをつけたいSHA1

タグを消去する

1
git tag -d タグ名

これが表示されれば成功

1
Deleted tag 'タグ名' (was SHA1)

タグの一覧を表示する

1
git tag

【Git】コマンドラインの構文

コマンドラインの構文の概要

  • git : 必須
  • [スイッチ] : オプション
  • <コマンド> : オプション
  • <引数>: オプション
    1
    git [スイッチ]<コマンド><引数>

ヘルプにも同じような構文の記述がされている

1
2
3
4
5
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
<command> [<args>]
コマンド 説明 参考
–version バージョン確認
–help 概要と最も一般的に使用されるコマンドのリストを出力
-C カレントディレクトリではなくに指定したディレクトリでGit実行する
-c = 設定ファイルのに指定した項目の値をで設定した値を上書きする
–exec-path[=] Gitのコアファイルのパスを出力する。パスを設定することもできる。
–html-path ドキュメントファイルの補完されているパスを出力する
–man-path Gitのmanファイルが格納されているパスを出力する
–info-path Gitのドキュメントを文書かしたファイルがあるパスを出力する(私の環境ではパスは表示されたが、パスが存在しなかった)
-P | –paginate ページャーに出力をパイプする
-p | –no-paginate ページャーに出力をパイプしないようにする
–no-replace-objects Gitオブジェクトを置換しない https://git-scm.com/docs/git-replace
–bare ベアリポジトリとして扱う https://qiita.com/devzooiiooz/items/56a02342d9d65d79f6c3
https://cpplover.blogspot.com/2015/04/git10linus-torvals.html
–git-dir= リポジトリへのパスを設定する(環境変数 GIT_DIR を設定するのと同じ)
–work-tree= 作業ツリーへのパスを設定する(環境変数 GIT_WORK_TREE や設定変数 core.worktree を設定するのと同じ)
–namespace= Gitの名前空間を設定する(環境変数 git_namespace を設定するのと同じ)

ダッシュ(-)1個とダッシュ(–)の使い分け

  • 1つ(-) : 1文字のスイッチ(省略型)
  • 2つ(–) : 略さずに完全に記述する長いスイッチ

【Git】管理されているファイル情報をみる

リポジトリで「管理されている」ファイルのリストを取得する

ls-filesコマンドの-cオプションを使用する

ls-filesはデフォルトで-cオプションがついている

-c, –cached

Show cached files in the output (default)

実行結果例

1
2
3
4
5
6
% git ls-files 
1
2
3
4
aaa

リポジトリで「管理されていない」ファイルのリストを取得する

ls-filesコマンドの-oオプションを使用する

-o, –others

Show other (i.e. untracked) files in the output

実行結果例

1
2
3
% git ls-files -o
5
bbb

【Gitエラー】「fatal: Out of memory, malloc failed (tried to allocate xxxxxxxxxxx bytes)」の解決方法

原因

ファイル容量の大きいGitリポジトリをチェックアウトしようとしたら起きたので、Gitの解凍処理でメモリが食い尽くされているのが原因らいしい

解決策

解凍処理を小分けにする

~/.gitconfigに以下を追記する

1
2
3
4
5
6
7
8
[core]
packedGitLimit = 128m
packedGitWindowSize = 128m

[pack]
deltaCacheSize = 128m
packSizeLimit = 128m
windowMemory = 128m