vaguely

和歌山に戻りました。ふらふらと色々なものに手を出す毎日。

初心者(含む非開発者)向けGitによるバージョン管理資料メモ(Git Bash編)

はじめに

前回 Git GUIであれこれやってみたのですが、
なぜか会社のPCで Git GUI が正しく動かない(ファイルの変更が Rescan 後も Unstaged changes に表示されない)ため、
Git Bash を使って説明することにしました。

ということで、前回の内容をCUIで実行してみる、という内容となります。

準備

バージョン管理対象のプロジェクト作成

  1. バージョン管理対象のファイルを任意の場所に置いたフォルダに入れます。
  2. Git Bashを起動します。
  3. git init を実行します。
  4. 1.のフォルダ内に .git というフォルダが作成されます(表示から隠しファイルを表示する必要あり)。
  5. 4.のフォルダ内にこれから保存していく履歴情報が蓄積されることになります。

ユーザー情報などの登録

以下を実行します。

git config --global user.name "ユーザー名"
git config --global user.email メールアドレス

Commitする

まずはファイルを一つ作成して、バージョン管理してみることにします。

  1. ファイルをプロジェクトフォルダに置きます。
  2. Git Bash で git add . を実行します。
  3. git commmit -m “変更内容” を実行してCommmitします。

  4. 2.で、 . の代わりに特定のファイル名を指定することもできます。

  5. 3.で、 -m “変更内容” をつけない場合、実行後に Commit Message を入力するエディタ(デフォルトではVim? が開きます)。

履歴を見る

保存した内容を見てみます。

git log を実行することで、 Commit した日時や Commit Message を見ることができます。

なお、 git log で表示される履歴が4つ以上ある場合、
下記のような状態になり、そのままでは履歴表示モード?が終了できません。

その場合は q を押すと終了できます。

f:id:mslGt:20170901055427j:plain

また、それぞれの Commit 同士の差分を見るには、別途diffツールを用意する必要がありそうです。

バージョン管理しないフォルダ・ファイル

gitignoreの扱いは前回と同じです。

取り消し

直前のCommitを取り消したい場合

git revert HEAD

指定したCommitを取り消したい場合

例えば下記の一番上の Commit を取り消す場合

git revert 082822cfff3c4be617d01758e91a6722b4b6642d
  • ただし、例えば上から2番目のCommitに対して実行するとエラーとなりました。このような場合はオプションなどをつける必要があるかもしれません。

f:id:mslGt:20170901055451j:plain

2017.9.1 更新
Resetについて追記

Reset の場合は git reset を使います。

git reset --hard 082822cfff3c4be617d01758e91a6722b4b6642d

Branchを作る

Branchを作る

Branch を作成するには、以下を実行します。

git branch Branch名

Branchを切り替える

git checkout Branch名

master にマージする

checkoutして master ブランチに戻したあと、

git merge マージするBranch名

終わりに

やっぱり git を使うのはCUIの方が素直で良い気がしますね。。

参照