初心者でも簡単にGitの基本的な操作が全てわかる!!

Git

概要

本日はGitの初歩的な操作方法全般について解説します
解説する内容はGitのインストール、初期設定の方法ワークツリーとインデックス、コミットについて初期化、状態確認、ログ確認、変更差分の確認、コンフリクトとその解消方法についてです

準備

まずはGitのインストール方法について解説しよう
Gitをインストールするためには上記のダウンロードサイトにアクセスし、
インストーラーを起動して選択肢を進めてゆく
インストールが完了するとコマンドプロンプトやWindows PowerShellからGitが使えるようになる
続いてGitの設定を行おう
git config –global user.name “<ユーザ名>”
でユーザ名を
git config –global user.email “<メールアドレス>”
でメールアドレスを設定しよう
この設定はコミットの履歴などに記録され、基本的は一度設定するだけでよい

Gitの操作

リポジトリを作成

では早速、手元のPC上でGitのリポジトリを作成してみよう
ちなみにリポジトリというのはファイルやディレクトリの状態と、
その変更履歴を管理する場所ね
git initを実行することで手元のPC上にリポジトリを作成することができる

ここでリポジトリの状態を確認するコマンドのgit statusを実行してみよう
On branch master
No commits yet
nothing to commit (create/copy files and use “”git add”” to track)
と表示される。これは
現在はマスターブランチ上である
まだコミットはなし
コミットすべきファイルはなし
という意味だ

※ブランチとは開発の本流から分岐し、本流の開発に影響を与えず作業を続ける機能のことだ
※コミットとはファイルやディレクトリへの変更を保存することだ

コミット

では、試しに適当なファイルを作成しコミットしてみよう
test.txtという名前でファイルを作成し、ファイル内にaaa、bbb、cccと記載して保存する

この状態でgit statusを実行すると、先程と変わって
Untracked files: test.txt
nothing added to commit but untracked files present
と表示される
ここで表示されるUntracked filesの意味を理解するためにはワークツリーとインデックスの知識が必要になる

ワークツリーとインデックス

ワークツリーとは実際に作業を行っているディレクトリのことだ
この場においてはtestディレクトリのことを指す
先程、ワークツリーの中でtest.txtというファイルを作成した
このファイルをリポジトリに登録するためにはその前にインデックスツリーに登録する必要がある

インデックスツリーを間に挟むことで必要ないファイルを含めずにコミットしたり
変更中のファイルはコミットせずに、変更が完了したファイルだけを先にコミットする
といった柔軟な変更が可能になる

コミットの実行

ではgit add test.txtを実行してみよう
ここでgit statusを実行すると
Changes to be committed: new file: test.txtと表示されるようになったことが確認できる
test.txtがインデックスツリーに登録されたということだ

ここでgit commit -m “”add text.txt””を実行してコミットしてみよう
“”add text.txt””はコミットメッセージなので基本的には何を書いてもよいが
変更の内容を書くことが普通だ

コミット実行後にgit logを実行すると先程変更した内容が記録されていることがわかる

さらにこのファイルに変更を加えてみよう

エディタでファイルを開き、bbbの部分をdddへ変更しファイルの末尾にeeeを追加しよう

この状態でgit statusを実行するとmodified: test.txtと表示される
これはtest.txtを変更したことを示す

ここでgit diffを実行すると具体的にどのような変更を加えたかを確認することができる

この変更をコミットしたい場合は先ほどと同様にgit add test.txt、git commit -mを実行後すればよい

この変更をコミットしたい場合は先ほどと同様にgit add test.txt、git commit -mを実行後すればよい
また、git addを取り消したい場合は git restore –stagedを実行すればよい
コミットを取り消したい場合は
git reset –soft HEAD^で直前のコミットを取り消すことができる

ブランチの操作

続いてブランチの操作方法について解説しよう
git checkout -b ブランチ名でブランチを作成し、作成したブランチに切り替えることができる
git checkout -b developと実行してみよう
git branchを実行するとdevelopブランチが作成され、
現在はdevelopブランチを使用していることが確認できる

この状態でファイルに変更を加えて先程と同様にコミットしたのちに
git checkout masterで元のブランチに切り替えtest.txtを見てみよう

すると先程加えた変更がmasterブランチには反映されていないことがわかるだろう
このようにブランチを作成することで元のブランチに影響を及ぼさず開発を行うことができる

ではdevelopに行った変更をmasterに反映してみよう
このようの枝分かれしたブランチを統合することをマージと呼ぶ

masterブランチを使用した状態で git merge developを実行してみよう

するとdevelopで行った変更が反映されているはずだ

コンフリクト

続いてコンフリクトについて解説しよう
コンフリクトとは主に複数ブランチを運用している時に発生する事象で
あるブランチで行った変更箇所と同じ部分を別のブランチで変更してしまい
どちらの変更を適用していいかわからなくなってしまっている状態だ
まずはコンフリクト状態を意図的に作り出してみよう

masterブランチ上ではファイルの末尾にchange on masterと追加しコミット
developブランチ上ではファイルの末尾にchange on developと追加しコミットしよう
そのあとmasterブランチで先ほどと同様にgit merge developを実行してみよう
するとCONFLICT (content): Merge conflict in test.txt
Automatic merge failed; fix conflicts and then commit the result.
と表示される
test.txtでコンフリクトが発生したのでコンフリクトを解消しろと言われている

test.txtを見ると
<<<<<<< HEAD、=======、>>>>>>> develop
でどの部分への変更が競合したかわかる
今回はdevelopでの変更を優先することにしよう

change on developだけを残して他の部分を削除し、
git addとgit commit -mを実行しよう
これでコンフリクトが解消された

タイトルとURLをコピーしました