@legitwhiz

legit whiz 技術レポート

View on GitHub

Gitbucketでソース管理

1. Git運用ルール

サイト管理のためのGit運用フローを作ってみました。

1.1. 目的

  1. 複数人で効率的に共同作業ができるように最低限の操作を覚えてほしい。 + 最低限のルールを決めたい。 これを機に運用ルールを設けることを意識し、運用効率をあげたい。

  2. 納品ファイルの履歴を管理したい。 サーバにあるソースが最新なんて管理とは言わないよ。

1.2. 最低限の操作を覚える

↓をひと通り演習。 Git をはじめからていねいに まずは、基本的な操作が身につけましょう。 簡単だからとGUIクライアントソフトを使う前に、まずコマンド操作で慣れていけばGUIで操作した場合、ミスが減らせるかと思います。

1.3. 最低限の運用フロー

git-flow

ブランチ名 説明
master メイン
release プレビュー・納品用
<開発者名>/<開発名> 開発用

1.4. READMEを書く

1.5. 参考

Git入門:Git初学習者のための効率的な学習方法を考えてみた 俺のオレオレgit-flow

2. 事前準備(初期の構築時のみ実行)

git環境を使えるようにするため初期設定及びmaster,releaseブランチの作成

2.1. リポジトリ作成

ブラウザでGitbucketにアクセスし、[Sign in]からrootで入ります。

右上の[+]を選択し、[New repository]をクリック 。

new_repository001

[Repository name]を入力し、[Description]にレポジトリの説明を入力し[Create repository]をクリック。

new_repository002

2.2. masterブランチ、releaseブランチの作成

git init
git remote add origin http://localhost:8080/git/root/SSO.git
vi README.md
git add README.md
git config --global user.name "<氏名>"                 #username
git config --global user.email "<e-mail address>"     #email
git config --global core.editor vi                    #editor config
git config --global merge.tool vimdiff                #diff tool config
git config --list

git commit -m "first commit"
git push -u origin master
git checkout -b release
git push origin release

3.コマンドでのワークフロー

※gitコマンドを導入済みのLinux環境で運用したい場合、コマンドでのワークフローで運用して下さい。

※Windows端末でのワークフローを運用する場合は、次節の「GUIクライアントでのワークフロー」を参照。

3.1. 準備

git init
git remote add origin http://<GitBucketサーバIPアドレス>:8080/git/root/SSO.git
git config --global user.name "<氏名>"                 #username
git config --global user.email "<e-mail address>"     #email
git config --global core.editor vi                    #editor config
git config --global merge.tool vimdiff                #diff tool config
git config --list                                     #設定確認
$ git checkout master
$ git pull origin/master
$ git checkout -b branchname master
※ブランチ名は開発者名と開発名をスラッシュで結合したものとする。
例: legitwhiz/featurename, legitwhix/bugname

3.2. コーディング

$ git status
$ git add filename
$ git commit -m "コメント"
$ git reset --soft HEAD
$ git fetch origin/master
$ git log --oneline--prety=medium -10 origin/master
$ git rebase origin/master
$ git commit
$ git stash "コメント"
$ git stash list
$ git stash pop

3.3. マージ

3.4. プロダクション(master)

$ git merge --squash branchname
$ git commit -m "コメント"
$ git push

3.5. リリース

$ git checkout master
$ git log
$ git tag 2018.12.18

3.6. プロダクション(release)

4. GUI Client

[TortoiseGit]と[Git for Windows]をWindows端末に導入しGUI環境を構築します。

なお、[TortoiseGit]は裏で[Git for Windows]を使用するため、先に入れておく必要があります。

4.1. Git for Windows

  1. [Git for Windows]にアクセスし、[Download]をクリック。

    Git_for_Windows001

  2. ダウンロードした、[Git-2.20.1-64-bit.exe]を実行する。

  3. Setup画面で[Next]をクリック。

    Git_for_Windows002

  4. インストールするディレクトリを選択し、[Next]をクリック。

    Git_for_Windows003

  5. 必要なコンポーネントを選択し、[Next]をクリック。 ​ 最低限[Windows Exploere integration],[Git Bash Here],[Git GUI Here],[Git LFS]は必要かと

Git_for_Windows004

  1. スタートメニューフォルダーを入力し、[Next]をクリック。

    Git_for_Windows005

  2. 使用するエディタを選択し、[Next]をクリック。

    Git_for_Windows006

  3. 環境変数では[Use Git from Git Bash only]を選択し、[Next]をクリック。 ここで[Use Git from the Windows Command Prompt]にしてしまうと、 コマンドプロンプトがGitBashに乗っ取られて非常に使いづらくなる。

Git_for_Windows007

  1. HTTPS接続時に使用するSSLコンポーネントは、[Use the OpenSSL library]を選択し、[Next]をクリック。

    Git_for_Windows008

  2. 改行コードの変換動作については、勝手に改行コードを変えてほしくないので[Checkout as-is, commit as-is]を選択し、[Next]をクリック。

    Git_for_Windows009

  3. ターミナルエミュレータの選択は、[Use MinTTY]を選択し、[Next]をクリック

    Git_for_Windows010

  4. その他のオプションについては特に変更せず、[Install]をクリック

    Git_for_Windows011

  5. [Finish]をクリック

    Git_for_Windows012

4.2. TortoiseGit

※languagePackもココにあります。

  1. ブラウザで[TortoiseGit]にアクセスし[Download]をクリック。

TortoiseGit_Install001

  1. 端末の環境に合わせて[for 32-bit Windows]もしくは[for 64-bit Windows]を選択しダウンロードする。

TortoiseGit_Install002

  1. 日本語パッケージをダウンロードするために、以下の[JapaneseのSetup]をクリック。

TortoiseGit_Install003

  1. ダウンロードした[TortoiseGit-2.7.0.0-64bit.msi]を実行し、インストールウィザードで[Next]をクリック

TortoiseGit_Install004

  1. ライセンス情報を一読し[Next]をクリック

TortoiseGit_Install005

  1. SSHクライアントは[TortoiseGitPlink…]を選択し[Next]をクリック

TortoiseGit_Install006

  1. インストール先はそのままにし、[Next]をクリック

TortoiseGit_Install007

  1. [Install]をクリック

TortoiseGit_Install008

  1. チェックを外し[Finish]をクリック

TortoiseGit_Install009

  1. 日本語化パッケージである[TortoiseGit-LanguagePack-2.7.0.0-64bit-ja.msi]を実行。

TortoiseGit_Install010

  1. セットアップが完了したら[Configure TortoiseGit to use this language]にチェックを入れ、セットアップを完了する。

TortoiseGit_Install011

4.3. 公開鍵の生成

GUIクライアントから公開鍵認証によるSSH接続を行うため、事前にクローン先コンピューターにて公開鍵を生成する。

  1. プログラム一覧のTortoiseGitの中にある”PuTTYgen”を起動し、キー生成を開始する。

    TortoiseGit_Install012

  2. 上部のゲージがいっぱいになるまで、空白部分上でマウスカーソルを動かす。

    TortoiseGit_Install013

  3. 公開鍵が生成されて表示されるので、すべてコピーしておく。その後[Save private key]を押して秘密鍵の保存ダイアログを開く。[Key passphrese]にパスフレーズを入力することで、秘密鍵にパスワードを掛けることができるが今回は空白としている。

TortoiseGit_Install014

  1. パスフレーズをかけていない場合警告が出るが、無視して”はい”で進める。

​ 適当な場所に保存する。ファイル名も任意で良い。

TortoiseGit_Install015

5. GUIクライアントでのワークフロー

5.1 準備

ローカルリポジトリの設定

  1. ローカルリポジトリを作成するディレクトリを適当なところに作成し、エクスプローラーからディレクトリを右クリックし[Git ここにリポジトリを作成]をクリック。

git_clone001

  1. チェックはそのまま(外れた状態)にして[OK]ボタンをクリック

git_clone002

  1. [OK]ボタンをクリック

git_clone003

リモートリポジトリの同期

  1. ローカルリポジトリのディレクトリを右クリックし、[Git 同期]をクリック。

git_clone000

  1. リモートブランチに[master]を入力し、リモートの[管理]ボタンをクリック。

git_clone004

  1. URLを入力し[新規に追加/保存]をクリックし、[OK]ボタンをクリック

git_clone005

  1. Git同期画面で[プル]ボタンをクリックし”成功”となることを確認し、[閉じる]ボタンをクリック。

git_clone006

ブランチを切る

  1. エクスプローラーでローカルリポジトリのディレクトリを右クリックし、[TortoiseGit]-[ブランチを作成]をクリック。

git-flow_gui_branch001

  1. ブランチを作成画面で[ブランチ]にブランチ名を入力し、[新しいブランチに切り替える]にチェックを付け、説明に改修内容を入力し、[OK]ボタンをクリック。

    ブランチ名は、”<作業者の名前>/<改修内容>"とする。

git-flow_gui_branch002

Gitコマンド実行中画面で”成功”と出力されたことを確認し、[閉じる]ボタンをクリック。

git-flow_gui_branch003

5.2 コーディング

  1. 追加(add)

ローカルリポジトリに対象ファイルをコピーし、エクスプローラーで対象ファイルを右クリックし、[TortoiseGit]-[追加]をクリック。

git-flow_gui001

追加終了画面で成功となっていることを確認し、[OK]をクリック。

git-flow_gui002

エクスプローラーで追加した対象ファイルのアイコンに+マークが付けば追加(add)された状態となります。

git-flow_gui003

追加した対象ファイルを右クリックし、[Gitコミット]をクリック。

git-flow_gui004

コミット画面でメッセージを入力し、[著述日時を設定する]、[作者を設定]にチェックを入れ、[コミット]ボタンをクリック。

git-flow_gui005

Gitコマンド実行中画面で”成功”と出力されたことを確認し、[閉じる]ボタンをクリック。

git-flow_gui006

ファイルのアイコンが+マークからチェックマークに変わればCommitされた状態となります。

git-flow_gui007

  1. 変更(modify)

ローカルのリポジトリディレクトリに更新したファイルコピーするとエクスプローラーでアイコンにエクスラメーションマークが付きます。

エクスラメーションマークが付いたアイコンを右クリックし、[TortoiseGit]-[差分]をクリック。

git_GUI_modify001

前のバージョンとファイルを比較し、想定通りの差分であることを確認し右上の「×」ボタンで画面と閉じる。

git_GUI_modify002

エクスラメーションマークが付いたアイコンを右クリックし、[Gitコミット]をクリック。

git_GUI_modify003

コミット画面でメッセージに改修内容を入力し、[著述日時を設定する]、[作者を設定]にチェックを入れ、[コミット]ボタンをクリック。

git_GUI_modify004

Gitコマンド実行中画面で”成功”と出力されたことを確認し、[閉じる]ボタンをクリック。

git_GUI_modify005

5.3 マージ

5.4 プロダクション(master)

  1. marge

エクスプローラーでローカルリポジトリディレクトリを右クリックし、[TortoiseGit]-[切り替え]をクリック。

branch_marge001

ブランチを選択し、プルダウンメニューから”master”を選択し、[OK]をクリック。

branch_marge002

Gitコマンド実行中画面で”成功”を確認し、[閉じる]ボタンをクリック。

branch_marge003

エクスプローラーでローカルリポジトリディレクトリを右クリックし、[TortoiseGit]-[マージ]をクリック。

branch_marge001

ブランチを選択し、[…]ボタンを押す

branch_marge004

左ペインから[refs]-[heads]-[<ブランチ名の/区切りで前半部分>]を選択し、右ペインから[<ブランチ名の/区切りで後半部分>]を選択し、[OK]ボタンをクリック。

branch_marge005

ブランチに5.1で作成したブランチ名が記載されていることを確認し、[OK]ボタンをクリック。

branch_marge006

Gitコマンド実行中画面で”成功”が出力されたことを確認し、[閉じる]ボタンをクリック。

branch_marge007

  1. push

エクスプローラーでローカルリポジトリディレクトリを右クリックし、[TortoiseGit]-[プッシュ]をクリック。

git-flow_gui008

[ローカル]で[master]を選択し、[リモート]で[master]を選択し、[OK]をクリック。

git-flow_gui009

Git Credential Manager for WindowsでGitBucketのユーザ、パスワードを入力し、[OK]をクリック。

git-flow_gui010

Gitコマンド実行中画面で”成功”を確認し、[閉じる]ボタンをクリック。

git-flow_gui011

5.5. リリース

  1. pull

エクスプローラーでローカルリポジトリディレクトリを右クリックし、[TortoiseGit]-[ログを表示]をクリック。

release_pull001

リモートで”origin”を選択し、リモートブランチで”master”を選択し、[OK]ボタンをクリック。

release_pull002

Gitコマンド実行中画面で”成功”を確認し、[閉じる]ボタンをクリック。

release_pull003

  1. log

エクスプローラーでローカルリポジトリディレクトリを右クリックし、[TortoiseGit]-[ログを表示]をクリック。

release_log001

出力されたログメッセージを確認する。

release_log002

  1. tag

エクスプローラーでローカルリポジトリディレクトリを右クリックし、[TortoiseGit]-[タグを作成]をクリック。

release_tag001

タグにタグ名を入力し、メッセージにタグの詳細を入力し、[OK]ボタンをクリック。

release_tag002

5.6. プロダクション(release)

  1. pull

エクスプローラーでローカルリポジトリディレクトリを右クリックし、[TortoiseGit]-[プル]をクリック。

release_brunch_pull000

リモートを選択し、リモートブランチで[release]を選択し、[OK]をクリック。

release_brunch_pull001

Gitコマンド実行中画面で”成功”と出力されていることを確認し、[閉じる]をクリック。

release_brunch_pull002

2.marge

エクスプローラーでローカルリポジトリディレクトリを右クリックし、[TortoiseGit]-[マージ]をクリック。

release_brunch_marge001

ブランチで”remote/origin/release”を選択し、[OK]をクリック。

release_brunch_marge002

Gitコマンド実行中画面で”成功”と出力されていることを確認し、[閉じる]をクリック。

release_brunch_marge003

  1. push

エクスプローラーでローカルリポジトリディレクトリを右クリックし、[TortoiseGit]-[プッシュ]をクリック。

release_brunch_push001

[ローカル]で[master]を選択し、[リモート]で[release]を選択し、[OK]をクリック。

release_brunch_push002

Gitコマンド実行中画面で”成功”を確認し、[閉じる]ボタンをクリック。

release_brunch_push003

以上