
Git は Linux の生みの親である Linus Torvalds 氏によって開発された、オープンソースの分散バージョン管理システムです。Git によって Linux コミュニティは発展し続け、2 千万行を超えたカーネルコード(※1)は毎日約 1 万行が追加されている(※2)と言います。4.x シリーズでは 63 日から 77 日置きにリリースされています。これを可能にしているのは部分的には Git のおかげでもあります。
自分たち Linux ユーザーにとっては Git は何かをインストールするために頻繁に使うことになります。また、Linux Mint をインストールした際に、インストール後の諸々の設定を自動化するためのシェルスクリプトを書いたりして Git で管理することもあるでしょう。
今回は
- GitHub からソースを取得・更新する方法
- BitBucket を個人で活用する方法
- 簡易的な GUI アプリで使う方法
を見ていきます。いずれにせよ git をインストールしていなければインストールしておきましょう:
sudo apt install -y git
GitHub からソースを取得・更新する
ソースを取得
オープンソースソフトはしばしば GitHub にて公開されています。GitHub からソースを取得するには clone サブコマンドを使います。クローン、つまりコピーするということです:
git clone https://github.com/LinxGem33/OSX-Arc-White.git OSX-Arc-White
git clone のあとに GitHub の URL、その後に保存先のディレクトリ名を指定します。保存先のディレクトリ名は省略でき、どのみち「OSX-Arc-White.git」の「OSX-Arc-White」部分がディレクトリ名に使われます。
ソースの更新
「OSX-Arc-White」を更新したいとしたらワーキングディレクトリを「OSX-Arc-White」に移してから git pull コマンドを使います:
cd ~/OSX-Arc-White
git pull https://github.com/LinxGem33/OSX-Arc-White.git
BitBucket を個人で活用する
GitHub は公開するのであれば無料ですが、非公開でプライベート利用の場合は有料です。一方、BitBucket は公開するのであれば有料ですが、非公開であれば無料です。個人利用と親和性が高いのは BitBucket の方です。特に理由がなければ個人利用では BitBucket のほうがおすすめです。
まずは
アカウントを作成しておきましょう。
追記
米Microsoft傘下の開発者向けのソースコード共有サービスGitHubは1月7日(現地時間)、無料ユーザーでもプライベートリポジトリを使えるようにしたと発表した。
ITmedia NEWS(魚拓)
なので、BitBucket でなく GitHub でも無料でプライベート向けに使えるようになりました。
空のリポジトリから始める
BitBucket のアカウントを作成したら、ログインし左側にある [ + ] をクリックしましょう:

続いて [ Repository ] :

必要な項目を記入して新規リポジトリを作成します:

自分のアカウントのリポジトリのページにアクセスれば、リポジトリの URL が表示されるのでコピーしておきます:
git clone https://_Shellingford_@bitbucket.org/_Shellingford_/mybitbucket.git
パスワードを求められます:
Password for 'https://_Shellingford_@bitbucket.org':
パスワードを入力したらリモートリポジトリがローカルにコピーされます:
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (6/6), done.
Checking connectivity... done.
テキトーに編集します。編集がおわったら、ローカルリポジトリをリモートリポジトリに反映しましょう。
リモートリポジトリに変更を反映
Git では:
- ファイルを編集
- ステージに追加
- コミットする(=ローカルリポジトリに変更を反映する)
- プッシュする(=リモートリポジトリに変更を反映する)
という流れになります。
- まずは .git ディレクトリがあるディレクトリにワーキングディレクトリを移動します:
cd mybitbucket
- 以下のコマンドで変更があったがコミットされていないファイルやディレクトリを見ることができます。赤字で表示されます:
git status
- ファイルやディレクトリを追加した場合は以下のコマンドを実行してステージングエリアに追加します:
git add .
- コミットします:
git commit -m "コメント"
- するとこのようなエラーが出るかもしれません:
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address
というわけで、自分の情報を設定ファイルに追加します:
git config --global user.email "登録したメアド"
git config --global user.name "登録したユーザー名"
- 最後に push します:
git push https://_Shellingford_@bitbucket.org/_Shellingford_/mybitbucket.git master:master
- 毎回毎回、リポジトリの URL を入力するのは面倒なので、リポジトリの URL にアダ名をつけます。ここでは https://_Shellingford_@bitbucket.org/_Shellingford_/mybitbucket.git に origin というアダ名をつけています。このアダ名は何でも良く「miku」とかでも構いません:
git remote add origin https://_Shellingford_@bitbucket.org/_Shellingford_/mybitbucket.git
これで次回から https://_Shellingford_@bitbucket.org/_Shellingford_/mybitbucket.git に push するのに origin という名前が使えます:
git push origin master
自分がどのリポジトリの URL にどんなアダ名をつけているかは以下のコマンドで確認できます:
git config --list
出力例:
remote.origin.url=https://_Shellingford_@bitbucket.org/_Shellingford_/mybitbucket.git
その後の利用
あとは
- ファイルの編集
- git commit -m "コメント"
- git push origin master
の繰り返しです。ファイルやディレクトリを追加した時だけ
git add .
を忘れないようにします。
ファイルを削除したいときは rm サブコマンドを使います。git rm ではなく普通にファイラーから削除した場合でも git rm は実行する必要が有ります:
git rm README.md
git commit -m "README.md削除"
git push origin master
特定のコミットの状態まで戻るには、まず:
git log
出力例:
commit 599694edcae86138fc831136282b6e775ea844eb
Author: shellingford
Date: Wed Mar 14 23:24:54 2018 +0900
README にテスト追記
Signed-off-by: shellingford
で戻りたいコミット ID をクリップボードにコピーし、checkout します:
git checkout 599694edcae86138fc831136282b6e775ea844eb README.md
まとめ図
Git を GUI で使う
git-gui は Git を Tcl/Tk で GUI アプリ化したツールです。git gui を使えばユーザは新しくコミットしたり、既存のリポジトリに変更を加えたり、ブランチを作成したり、ローカルマージを実行したり、リモートリポジトリを取得したり、リモートリポジトリにプッシュしたりすることを GUI で行えるようにすることで、リポジトリに変更を加えやすくするツールです。
git とは異なり、git gui はコミットの生成と一つのファイルのアノテーションに焦点を当てているため、プロジェクト履歴は表示できません。ただし、git gui 内から gitk(リポジトリブラウザー) セッションを開始するためのメニューは用意されています。
インストールするには:
sudo apt install -y git-gui gitk
起動するには:
git gui
まずは、上述の「BitBucket を個人で活用する」の「空のリポジトリから始める」の
git clone https://_Shellingford_@bitbucket.org/_Shellingford_/mybitbucket.gitでローカルリポジトリを作成したことを前提に話を進めていきます。
- [ 既存のリポジトリを開く ] でダウンロード(clone)したディレクトリを指定しましょう:

- [ 編集 ] -> [ オプション ] から署名を変更できます:

- ファイルに変更を加えたら [ 再スキャン] します:

- [ 変更をコミット予定に入れ ] ます:

- [ 署名 ] でコメントを記入したら:

- [ コミット ] -> [ プッシュ ] します:

- パスワードを入力し:

- 「成功」と表示されれば OK です:

- これで BitBucket にアクセスすればリモートリポジトリでも変更が反映されているがわかります:

前のバージョンに戻りたい場合は:
- [ リポジトリ ] -> [ ブランチmasterの履歴を見る ] でコミット ID をコピーします:

- [ ブランチ ] -> [ チェックアウト ] で表示される画面の [ リビジョン式 ] に先程のコミット ID をペーストします:

- [ チェックアウト ] すればローカルリポジトリが元のバージョンに戻ります。
- やっぱり最新のバージョンに戻りたい場合は [ ローカルブランチ ] の [ master ] を選べば OK です:

※1)
増え続けるLinuxカーネルコード、2016年第1四半期の総行数は2100万超 | マイナビニュース
※2)
Linuxが誕生25周年、24日にはリーナス・トーバルズ氏が基調講演 - ITmedia NEWS