Gitでプログラムも論文もバージョン管理する
もはや何番煎じかわからないくらいのGit解説記事。需要は皆無だろうけど備忘録としてまた世の中に無駄な記事を増やします。
はじめに
大学院の生活にも慣れ、何故かあるテスト期間も終わり、実験し放題の夏です。 かくいう僕は合間を縫って兼ねてから計画していたソフトウェア開発に着手している訳ですが、ここで気になってくるのがバージョン管理の問題です。 新たな機能の追加やプログラムの分岐に役立つのがGitです。 このGitの操作方法について忘れないように簡単に記します。
Gitとは
Gitは、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムです。(by Wiki) プログラムではないですが、私の卒論の作成時にはこんな感じにファイルが増殖していました。 これは最高にダサい。Gitを使えば見かけ上のファイルを1つのままにバージョンの管理が容易にできるようになります。そして変更履歴を保存しているのでいつでも過去の状態に戻すことができます。 変更中に戻したくなったが間違って上書きしてた!!死! なんて悲劇は起きなるでしょう。
Gitの操作
git init →リポジトリの初期化
Gitの操作ではまず始めにリポジトリを初期化します。
リポジトリは変更履歴を保存する倉庫のようなものと思っています。
まずは最初にGit管理するフォルダを作成し、git init
コマンドを使用してリポジトリの初期化を行います。
対象となるディレクトリをcd
してそこでgit init
します。
$ mkdir git-tutorial $ cd git-tutorial $ git init Initialized empty Git repository in /Users/abekeishi/Public/Programing/git-tutorial/.git/
すると.git
という65kB程度の隠しフォルダが生成されます。
Gitではgit-tutorial
フォルダをワークツリーを呼び、ここでファイルの編集を行います。
そして生成されたリポジトリで変更履歴の管理を行います。
git status → リポジトリの状態を確認
Gitリポジトリの状態を表示するためにはgit status
コマンドを使用します。
その前にREADMe.md
ファイルを作成して見ます。
$ touch READMe.md $ git status On branch master No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) .DS_Store touch READMe.md nothing added to commit but untracked files present (use "git add" to track)
On branch master
と表示され、現在はmaster
ブランチにいることがわかります。
またUntracked files
に .DS_Store
とtouch READMe.md
が表示されています。
これはまだリポジトリに追加されていないファイルを示しています。
git add →ステージ領域へフィルを追加
先ほどの操作でもわかりますが、ファイルを作成しただけではリポジトリには追加されません。
リポジトリへの追加はgit add
を叩きます。
$ git add READMe.md $ git status On branch master No commits yet Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: READMe.md Untracked files: (use "git add <file>..." to include in what will be committed) .DS_Store
こうすることによって変更が適用されます。
git commit →リポジトリの履歴を記録
git commitコマンドは、ステージ領域に登録されている時点のファイル群を実際にリポジトリの履歴として記録します。 この履歴を元にワーキングツリーに復元したり更新したりすることができます。
git commit -m "First commit" →一行のコミットメッセージを記述
$ git commit -m "First commit" 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 READMe.md create mode 100644 test.txt
取り敢えず今日はこの辺にします。