Gitについて、前回までの続きです。
前回までで、環境設定が終わり、コミットの操作なんかをやってきました。
今回は、コミットの取消、ファイルの削除、ブランチ、ブランチのマージあたりについて進めていきます。

その1はこちら >> Gitとは[概要] GitHubとCloud9(AWS)を例に順に解説 その1

その2はこちら >> Gitとは[環境設定] GitHubとCloud9(AWS)を例に順に解説 その2

その3はこちら >> Gitとは[コミット,ログ,差分確認] GitHubとCloud9(AWS)を例に順に解説 その3

AWSの無料枠の説明はこちら >> クラウドサーバー(AWS)をプログラミング学習や開発で無料で使う方法

スポンサードサーチ

コミットの取消

前回のcommitでもやったように、差分を確認して着実にコミットするのが前提です。
それでも、後から何らかの誤りを発見したりして、取り消す場面はでてきます。

コミットを取り消すには2つの方法があります。
●revert
●reset

●revert

取り消したい対象のコミットを打ち消す方法です。
取り消したいコミットを打ち消すコミットを新規に作成します。
打ち消した(取り消した)記録が残るので、リモートリポジトリを変更した場合は、この処理が原則です。

例えばこんな感じで、a.jsファイルに追記します。

addコマンドでステージ領域に追加して差分を確認したら、コミットしましょう。

たった今コミットしたadd Rを打ち消します。
add Rをコミットした時のハッシュをコピーします。

TEST1:~/environment/git_repositories/tutorial (master) $ git revert コピーしたハッシュ
でエンターを押すと

nanoで立ち上がってきましたね。
control + Xキー で戻ります。
これで、追記したconsole.log(‘R’);の行がなくなっています。

logを確認。

今回はハッシュをしましたが、最新のコミットを取り消す場合はHEADを指定してもOKです。

TEST1:~/environment/git_repositories/tutorial (master) $ git revert HEAD

 

●reset

取り消したいコミットをそもそも無かったことにする方法です。
コミットのログは綺麗になりますが、この操作を誤った時の影響が甚大なので慎重に。
基本はローカルリポジトリでのみ使用します。

コミットまでの流れは、revertの時と同じです。

 

今回は試しに、直前のコミットではなく、一番はじめのコミットまで取消してみましょう。

logを確認して、ハッシュをコピーします。

TEST1:~/environment/git_repositories/tutorial (master) $ git reset –hard コピーした対象のコミットのハッシュ

ズバッと戻りました。
繰り返しになりますが、リカバリーが困難になるのでくれぐれも慎重に。

ファイルの削除

作成したファイルの削除についてみていきます。

まずは削除する用のファイルを作って、コミットまで持っていきましょう。

ファイルの削除は rmコマンドを使います。

TEST1:~/environment/git_repositories/tutorial (master) $ git rm remove.js

git diff HEADで差分を確認して、

この削除をコミットします。

 

ちなみに、ディレクトリごと削除する場合は、
git rm -r 削除するディレクトリ名
で消し去れます。

スポンサードサーチ

ブランチ

branchとは枝分かれしたものを指す言葉です。
Gitの場合は、枝分かれさせて、各ブランチごとに別々の作業を同時に進める場合に使用します。

masterブランチを中心に開発を進めます。
追加の機能の開発のためなどに作られるのが、トピックブランチです。

作業が完了したらマスターブランチに取り込まれます。
その際は、リベースしてからマージする流れになります。

$ git branchで現在のブランチを確認します。

今はmasterのみですね。
ちなみに✳︎は今使っているブランチを表しています。

それでは、ブランチを作成して、移動してみましょう。

$ git branch feature-A
でブランチを作成し、

$ git checkout feature-A
で移動します。

feature-Aに✳︎がついているのが確認できます。

この状態でファイルを編集して、確認してみます。

feature-Aブランチでa.jsファイルを編集しコミットしました。

ここでmasterブランチに移動して確認してみると、

masterブランチではa.jsファイルに影響は出ていません。
こんな感じで、互いに影響を与えず、進めていくことができます。

ブランチのマージ

トピックブランチでの開発が完了したら、masterブランチにマージします。

先ほどのfeature-Aをマージしていきます。

まずmasterブランチに移動してから、$ git merge – -no-ff feature-A でマージします。
–no-ffは履歴を残すためのものです。

この表示を確認したら、control + Xで完了です。

ファイルの内容的にもマージされたのが分かりますよね。

コマンドで確認します。
$ git log – -graphを入力してエンター。

Merge branch ‘feature-A’

が確認できました。

今日のところはここまで。では!!