LinuxさんでGitを使う~リポジトリのバックアップ~
はじめに
くーばねてすをやっつけるためにLinuxさんと仲良くさせていただいているが、LinuxさんでもなんとGitをインストールしてファイルの変更管理ができるそうだ!
LinuxさんでGit!
概要
■リポジトリのバックアップをとる
■リポジトリの複製をつくる
■バックアップリポジトリに変更履歴をおくろう
をまとめた^^
■リポジトリのバックアップをとる
故障や誤操作でリポジトリ自体がなくなってしまった時のためにリポジトリのバックアップを作成する。
まずはバックアップ用のディレクトリを作成する。
作成場所はどこでもOK(^^)作成するときは慣習としてわかりやすいように末尾に.gitとつける。
今回は~/suidou/suidoudiary.gitにバックアップ用リポジトリを作成する。
バックアップ用リポジトリをディレクトリに設定するのには、バックアップ用ディレクトリに移動して、git init コマンドに--bareオプションをつける。
$ git --bare init
やってみる(^^)
$ mkdir -p ~/suidou/suidoudiary.git
$ cd ~/suidou/suidoudiary.git
$ git --bare init
Initialized empty Git repository in /root/suidou/suidoudiary.git/
ディレクトリをバックアップ用リポジトリとして設定できた!(>_<)
ではリポジトリのバックアップをとろうと思う!
バックアップをとるにはバックアップ元にリポジトリへ移動し、git pushコマンドを使う。
$ git push 送信先リポジトリ 送信元ブランチ名:送信先ブランチ名
$ cd ~/git/suidoudiary
$ git push ~/suidou/suidoudiary.git master:master
Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (9/9), 1.32 KiB | 1.32 MiB/s, done.
Total 9 (delta 2), reused 0 (delta 0)
To /root/suidou/suidoudiary.git
* [new branch] master -> master
※ちゃんと移動したのか確認してみる。
$ cd ~/suidou/suidoudiary.git(バックアップ用リポジトリへ行く)
$ git log
commit 459b3cc26974493945c14e953c455f41f033614d (HEAD -> master)
Author: suidou <suidou@example.com>
Date: Sat Jan 16 05:55:00 2021 +0000
追記
日記を追記した
commit 59151f084c886a15fe60cf14b60aa6778b837254
Author: suidou <suidou@example.com>
Date: Thu Jan 14 14:17:42 2021 +0000
日記の内容を変更した
日記を追記した
commit bcbf354588e6b7e9d1e6d60716f84ff4f194a6eb
Author: suidou <suidou@example.com>
Date: Wed Jan 13 14:40:37 2021 +0000
suidou0113.txt新規作成
ちゃんとバックアップが取れている!(^^)
■リポジトリの複製をつくる
せっかくリポジトリのバックアップに成功したのでバックアップから複製を作りたいと思う。
複製をするには複製先ディレクトリを作成し、複製先ディレクトリへ移動し、git cloneコマンドを使う。
$ git clone 複製元リポジトリ
やってみる。今回は~/suidou/masterって名前にしてみる!(^_-)-☆
$ mkdir -p ~/suidou/master
$ cd ~/suidou/master
$ git clone ~/suidou/suidoudiary.git
Cloning into 'suidoudiary'...
done
※ちゃんとできたのか確認
$ls
. .. suidoudiary
$ cd suidoudiary
$ git log
commit 459b3cc26974493945c14e953c455f41f033614d (HEAD -> master, origin/master, origin/HEAD)
Author: suidou <suidou@example.com>
Date: Sat Jan 16 05:55:00 2021 +0000
追記
日記を追記した
commit 59151f084c886a15fe60cf14b60aa6778b837254
Author: suidou <suidou@example.com>
Date: Thu Jan 14 14:17:42 2021 +0000
日記の内容を変更した
日記を追記した
commit bcbf354588e6b7e9d1e6d60716f84ff4f194a6eb
Author: suidou <suidou@example.com>
Date: Wed Jan 13 14:40:37 2021 +0000
suidou0113.txt新規作成
複製できてる!(^^)
■バックアップリポジトリに変更履歴をおくろう
こんな感じで複製やバックアップが簡単にできるので、作業しているリポジトリに変更があったらきりのいいところでバックアップに変更履歴を送ろうと思った!
$ git push 送信先リポジトリ 送信元ブランチ名:送信先ブランチ名
この呪文みたいな長さの引数の指定は省略することができる。
■送信元ブランチ名:送信先ブランチ名がどちらも同じ名前だった時は一つに省略することができる
$ git push 送信先リポジトリ ブランチ名(同一)
■リポジトリパスを省略する
リポジトリパスを省略するにはリポジトリに別名を付ける必要がある
$ git remote add 別名 リポジトリパス
別名は特に何でも構わないが特になければ origin ってのがとりあえず付けられるそうだ。
別名をつけたリポジトリの一覧表示
$ git remote -v
origin /root/suidou/suidoudiary.git (fetch)
origin /root/suidou/suidoudiary.git (push)
■省略!
$ git push origin master
まとめ
みんなコロナでなにしてるんだろう(>_<)?
Discussion