😝

LinuxさんでGitを使う~ブランチの説明~

2021/01/16に公開

はじめに

くーばねてすをやっつけるためにLinuxさんと仲良くさせていただいているが、LinuxさんでもなんとGitをインストールしてファイルの変更管理ができるそうだ!
LinuxさんでGit!

概要

■前のセーブ地点に戻る
■ブランチを使う
■ブランチで修正した内容をmasterにマージする
をまとめた^^

■Gitで前のセーブ地点に戻る

間違った内容でファイルを編集してしまい、ファイルの内容を壊してしまった、ファイル自体を削除してしまった、こんなとき、バージョン管理システムであるGitさんには誤りから復旧する方法がいくつかあるらしい('_')

□ワークツリーでファイルの内容を壊してしまった
ワークツリーの内容を壊してしまったときは前回セーブしていた内容をリポジトリから引っ張ってくることができる。
その代わりそれまでインデックスに追加していた内容は全部消えるので注意する(>_<)
インデックスに追加した内容を消してもいいのかgit diffコマンドで確認してから作業する。

ワークツリーを元に戻す
$ git checkout HEAD .

□コミットの内容を取り消したい
間違った内容のコミットを取り消したい時は、git revert(⇦戻すって意味) コマンドを使う。
昔コミットした内容も消すことができるぞ!('_')

$ git revert オブジェクト名

※オブジェクト名はgit logコマンドで確認できる!
git revertコマンドを実行するとコミット取り消しのコミットをすることになるのでコミットする
ときと同じようにlog入力用のvimが開かれる。
なのでなぜコミット取り消ししたのかログを記す。

■ブランチを使う

※ブランチってなに!?それって絶対おいしいやつでしょ!(>_<)

Gitでのブランチとは平行して別の作業をするために作業を分けることをいう。
ソフトウェアの開発では例えば新しい機能を開発しながら別の不具合を修正する...といったように違った内容の作業を平行して行わないといけない時がある。
そんなときに一つのバージョンからそれぞれの作業班に分けて作業するために作業履歴を分岐することができる。履歴を分岐することをブランチという。
ブランチには作業目的ごとに名前を付けることができる。
デフォルトで使用しているのがmasterブランチ。
□ブランチの一覧を表示する。

$ git branch
* master

*が表示されているのが今いるブランチを示す。
※お花かと思った!('_')
masterブランチがメインのブランチになる。ここから作業班に分けて新しいブランチを作っていくそうだ。

□新しいブランチを作成するのには

$ git branch ブランチ名 

修正ってわかりやすいブランチ名でブランチを作成する!

$ git branch 修正
$ git branch
* master
  修正

※日本語OKだったのか。('_')
新しいブランチを作成すると新しいブランチに合わせ新しいコミット先も自動で作成される。
ブランチが作成されるとそれぞれ別のブランチとして区別される。コミットもワークツリーもインデックスもそれぞれのブランチにより分かれる。

□ブランチを切り替える
ブランチを切り替えるにはgit checkoutコマンドを使う。

ブランチを切り替える
$ git checkout ブランチ名
$ git checkout 修正
Switched to branch '修正'
$ git branch
  master
* 修正

■ブランチで修正した内容をmasterにマージする

※マージってなに!?麻雀!?(>_<)麻婆豆腐!?

修正ブランチでファイルの内容を修正する。

suidou0113.txtを修正する
vim suidou0113.txt
#2020/01/13
私の会社には小さな会社だがトイレが二つある。
職人さん用のトイレとお客さん、女性用トイレだ。今週は私がトイレ掃除当番。
私は今朝も今週のルーティンであるトイレに向かった。
場所につくと私は職人さん専用トイレから異様な匂いがするのを感じた。
異常事態が発生しているのはトイレのドアを開けなくても容易に分かった。
これは...
私は人のうんこをみたことがない。
人のうんこ童貞だったのだがその日初めて人のうんこが便器に鎮座しているのを確認した。
放心状態でうんこの処理をしたあと、事務所に帰りおばちゃん先輩に報告した。
「なにそれ許せない!!!私だって人のうんこみたことないのに!
それくらい流さないやつがいたなんて社長に直談判しないと!」
犯人捜しが始まってしまった。
社内が異常な雰囲気に包まれた

編集が終わり、修正ブランチのリポジトリにコミットした!(>_<)

日記の内容修正班は修正が無事完了したので、masterブランチに変更内容を取り込もうと思う。
分岐したブランチを別のブランチに取り込むことをマージするという。

■マージ手順
①マージされるブランチに移動。
修正ブランチからmasterブランチにマージさせたいのでmasterブランチに移動する。

masterブランチに移動
$ git checkout master
Switched to branch 'master'

②マージする。
指定したブランチを現在のブランチにマージする。

指定したブランチを現在のブランチにマージする
$ git merge 修正
Updating 59151f0..459b3cc
Fast-forward
 suidou0113.txt | 7 +++++++
 1 file changed, 7 insertions(+)

変更内容を吸収するほうに移動してから取り込みたいブランチを指定してマージするんだね!(^^)
間違って逆にならないようにね!

□使い終わったブランチを作成する
使い終わったブランチを削除するにはbranchに-dオプションを使う。

$ git branch -d 削除するブランチ名

修正ブランチを削除する.

マージしたブランチを削除する
$ git branch -d 修正
Deleted branch 修正 (was 459b3cc).

確認もなくいきなり削除されるので一瞬びっくりだけど-dオプションをつけると一度もマージされたことのないブランチは削除されないように出来ているので、一安心だが必ず失ってもいいブランチなのか確認すること。
なので一度もマージされていなくて、削除してもいいブランチを削除したい時は

マージしてないブランチを削除
$ git branch -D 削除するブランチ名

で削除する。

まとめ

今日は金曜日だと思って間違えて早起きしちゃった!('_')
私のゆっくりした休日の朝を返してって思った。まあ昼までしっかり寝たけどね!

Discussion