Warning: Invalid argument supplied for foreach() in /home/minamachijp/minamachi.jp/public_html/mnc/wp-content/themes/mnc/functions/menu.php on line 48

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を使用しないと文字化けする場合がある

TOP
TOP