Gitの導入
ローカルリポジトリを使ってバージョン管理する
リモートリポジトリを使ってバージョン管理する
PullRequestを発行する
分散型のバージョン管理システム
ファイルのバージョン管理を行ってくれるものがGit
Windows、Linux、macOSなどで利用できる
インストール手順
簡単にできるようにGitのGUIをインストールしておくと便利です
Windowsの場合、TortoiseGitもしくはSourceTree
※先にGit for Windowsをインストールする必要あり
macOSの場合、SourceTree
基本的にGitはコマンドで利用することが多いです
Windowsの場合、コマンドプロンプトもしくはPowershell
macの場合は、Terminalを利用します
※Visual StudioやXcodeが入っていればgitコマンドが使用できる
Gitの設定は以下のコマンドで確認できる
git config –list
git configには 3種類ある
–global :グローバルの設定、localで設定しない場合はこれが取られる
–system:システム設定
–local:gitフォルダ内のみ有効な設定
以下の設定は必ず行うこと
git config –global user.name “My Name”
git config –global user.email myname@example.com
Gitはリポジトリを作って管理していきます
ファイルを格納した倉庫のようなものだと思ってください
まずリポジトリを作ってみましょう
git initがリポジトリを新規作成するコマンドになります
git add .が配下全てのファイルをコミット対象に追加するときに使用するコマンド
git commit –m “”がコメントつきでリポジトリに追加するコマンド
git log
今までのコミット履歴が表示される
git show
直前のコミットで何が行われたかが詳細にわかる
git show <コミット番号>で、その際にが実行されたかがわかる
Use Case 1
特定のバージョンまでファイルを戻す場合
以下のコマンドを打つことでバージョンを元に戻すことができる
git reset –hard
間違ってaddしてしまった場合
以下のコマンドを打つことでaddしなかったことにできる
git reset HEAD
git reset .
addだけを解除してファイルは元のバージョンに戻らないことに注意
単純にファイルを戻したい場合
git checkout .
※新規作成分は削除されないので注意
直前のコミットのコメントを変更する
git commit –amend –m “コメント
Use Case 2
マージコミットを戻したい場合
git revert コマンドを使用する
masterだけで管理する場合
リポジトリの作成
コミット対象の選択をして、コミットという手順を繰り返す
※コミットはファイルのリポジトリへの登録です。
Gitの.gitignore,.emptyファイルについて
.gitignore
Gitの管理対象から外したい場合に使用します
Excelなどの文書管理には向かない
.classファイルなどビルドする度に更新されるバイナリファイルは
対象から外しておく必要があります
.empty
空のフォルダをGitの管理対象にするために作成します
Gitは空のフォルダを管理対象にできないためです
ブランチについて
リモートリポジトリの話をする前にブランチの概念を知っておく必要があります。
ブランチとは、言葉そのままに木の枝のことを意味しています。他のブランチの影響を受けないため、複数人で開発する上では非常に重要です。
Gitのリポジトリを追加するとmasterというブランチが作成されます
ブランチは基本的にmasterをベースとして作成されます
ブランチは複数持つことができ、リモートリポジトリを作成する場合は必須の概念になります
ブランチの確認
git branch
ブランチの作成
git branch <ブランチ名>
ブランチへの切り替え
git checkout <ブランチ名>
ブランチ作成と切り替え
git checkout -b <ブランチ名>
ブランチの削除
git branch –d <ブランチ名>
ブランチで作業中に他のブランチで作業する
一時的なセーブ機能がgitには存在しています(単純にcheckoutすると作業内容は消えてしまう)
git stash save
一時的に変更点を保存する
stashの一覧は以下のコマンドで確認できます
git stash list
他のブランチでの作業が終わったら
git stash pop
作業内容を復元してstashは削除されます
git stash show <stash名>
変更点がどんなものなのかを表示してくれます
git stash apply stash@{0}
stashの内容を適用します
ブランチをマージする
基本的にブランチで作業して作業が完了したらmasterへのマージを行います
masterに戻ってからマージ作業を行います
git merge <commit番号>
git logコマンドでcommit番号を確認することができます
リモートリポジトリ
リモートリポジトリに対するコミットを行うことで複数人で作業しやすくすることができます
リモートが先にある場合
git clone <https://>
リモートを追加する場合
git remote add origin <https://>
リモートリポジトリから最新を取得する
git pull origin master
リモートリポジトリからの取得
Gitのリモートリポジトリから取得する際には以下のようなことを行います
リモートリポジトリ操作
git pull
現在のブランチの最新を取得して、マージが必要な場合はマージ処理を行う
git push
現在のコミットをリモートリポジトリに登録する
git fetch
リモートの全ブランチのコミット情報の取得
ファイル取得やマージ処理は行わない
ファイル取得のためにはgit pullをしなければならない
リモートリポジトリは手動で追加することも可能
git remote add origin 追加したいリポジトリ
git push -u origin master(このコマンドでリモートにファイルを送信します)
リモートリポジトリ確認
リモートリポジトリの一覧を表示する
git remote –v
リモートリポジトリに対応するURL
ssh
ftp[s]
git
http[s]
file]
リモートリポジトリへの追加
基本的にmasterでは操作せず、branchを切って作業します。
git branch dev1
git checkout dev1
git commit –m “comment”
git push origin dev1
リモート上にdev1ブランチを作成してそこにアップロードされます
bitbucketやGithubなどでPull Requestを発行します
管理者が問題ないと判断すればマージ処理を行います
この際、リモート上のブランチは削除される場合があります
開発者は最新版のmasterを取得するため、git checkout master ; git pullコマンドを発行します
その後、修正を行う場合はまたブランチを作成して作業します
Git Development Lifecycle
先にmasterが更新されてしまった場合
全ブランチの情報を取得するためにgit fetchコマンドを使う
一旦masterを更新する
git checkout master
git pull
その後、リベース処理を行い、dev2ブランチの元となったバージョンを現在のバージョンに変更する
git rebase master
勝手にマージ処理が走るのでコンフリクトが起きている箇所は修正して以下のコマンドを打つ
git rebase –continue
直前のコミットが置き換わる形になる
Gitのアクターについて
管理者
masterの管理者
主にPull Requesのマージを担当
開発者
ブランチで作業する
タスクやIssue番号に対しての作業であることをコメントに記述する
ブランチをリモートにコミットしてPull Requestを発行する
Gitを使う上での注意
MacとWindowsの利用者が「濁点や半濁点」などを含むファイルをコミットしようとすると文字化けが起こる可能性あり
基本的に日本語のファイル名のついたファイルは管理対象とすべきではない
DLLなどのバイナリファイルは管理対象から外すこと
文字コードに注意すること
基本的にはUTF-8を使用しないと文字化けする場合がある