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’
が確認できました。
今日のところはここまで。では!!