git

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です