Table of Contents
プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システム
インストール
# dnf install git
- 開発ツールに含まれるので単体でのインストールはまず無いと思う。
初期設定
ユーザ名とメールアドレスを設定
$ git config --global user.name "Emma Paris"
$ git config --global user.email "eparis@atlassian.com"
設定の確認
$ git config --global --list
リポジトリの作成場所の作成
# mkdir /var/lib/git
# chown hoge.hoge /var/lib/git
- 複数ユーザで使用する場合は、共通のグループを指定
空リポジトリの作成
$ cd /var/lib/git
$ mkdir test.git
$ cd tesr.git
$ git init --bare --share
--bare
:ベアレポジトリ(作業ファイルを持たず、管理のみ行うリポジトリ)を作成するオプション--shared
:グループアクセス可能なパーミッションを追加するオプション- リモート用のリポジトリ(ベアリポジトリ)の拡張子は.gitとするのが慣例
クライアント設定用URL
ssh://(サーバ名)/var/lib/git/test.git
初期コミット
$ mkdir work
$ cd work
$ git init
$ echo sample > samole.txt
$ git add sample.txt
$ git commit sample.txt -m "Initial Comit"
$ git remote add origin ssh://localhost/var/lib/git/test.git
$ git push origin master
- 初期の枠作成の例なので、Visual Sutudioや、Sourcetree等で作成済みのリポジトリをプッシュする場合は実施の必要なし
バックアップ
バックアップ(ミラー)
# git clone --mirror "var/lib/git/test.git" "/mnt/backup/git/test.git"
同期(ミラー実行後以降は同期)
# git clone --git-dir "/mnt/backup/git/test.git" remote update
バッチファイル
#! /bin/bash
#gitのバックアップバッチ
outparh="/mnt/backup/"
inparh="/var/lib/git/"
if [ -d $outpath ]; then
files=$inparh"*.git"
for filepath in $files; do
if [ -d $filepath ]; then
#echo $filepath
outfile=$outparh`basename $filepath`
#echo $outfile
if [ -d $outfile ]; then
#アップデート
git --git-dir $outfile remote update 1>/dev/null
else↲
#ミラー
git clone --mirror $filepath $outfile
fi
fi
done
fi
参考URL
Gitリポジトリのバックアップとリストア – Qiita
Githubを使わずにチームでGitを共有する方法 – Qiita
【Git】基本コマンド – Qiita