1
1

More than 1 year has passed since last update.

gitを使ったバージョン管理手順(社内ファイルサーバ+Win10)

Last updated at Posted at 2022-03-20

全体像

GitHub flowというバージョン管理の方針に沿って、
バージョン管理を行うための手順メモ
GitHub flowについては
https://qiita.com/onishi_820/items/d98c61e0faa67f417829

前提
リモートリポジトリは社内ファイルサーバ上に置く
Win10

新規作成から最初のコミットまで

01_ディレクトリの作成
02_カラのリモートリポジトリを作る
03_カラのリモートリポジトリをクローンしてローカルリポジトリを作る
04_ローカルリポジトリ上で開発を行う
05_変更内容をローカルリポジトリにコミットする
06_ローカルリポジトリのコミット内容をリモートリポジトリにプッシュする

最初のコミット以降の開発1

リモートリポジトリの最新の内容をローカルリポジトリに反映する

07_ローカルリポジトリ上で、masterブランチをチェックアウトする
08_リモートリポジトリのmasterブランチの変更内容をローカルリポジトリでフェッチする
09_現在いるブランチにリモートリポジトリの内容をマージする(リモートのmaster→ローカルのmaster)

初めて開発ブランチを作成し、開発し、途中で保存するためにプッシュする

10_ローカルリポジトリ上で開発ブランチを1つ作る
11_今作った開発ブランチをチェックアウトする
12_開発を行って、ローカルリポジトリの開発ブランチ上にコミットする

↓次にプッシュを行うが、プッシュ前にmasterブランチを最新の状態にしておく

13_ローカルリポジトリ上で、masterブランチをチェックアウトする(07と同じ)
14_リモートリポジトリのmasterブランチの変更内容をローカルリポジトリでフェッチする(08と同じ)
16_現在いるブランチにリモートリポジトリの内容をマージする(リモートのmaster→ローカルのmaster)(09と同じ)

↓開発ブランチを一時的にプッシュする

17_ローカルリポジトリで、再度開発ブランチをチェックアウトする(11と同じ)
18_その開発ブランチをリモートリポジトリにプッシュする

開発ブランチ作成、開発、初プッシュを行ったあとの2回目以降の開発(masterへのマージはまだ)

まずはローカルリポジトリのmasterブランチを最新にする
19_ローカルリポジトリ上で、masterブランチをチェックアウトする(07と同じ)
20_リモートリポジトリのmasterブランチの変更内容をローカルリポジトリでフェッチする(08と同じ)
21_現在いるブランチにリモートリポジトリの内容をマージする(リモートのmaster→ローカルのmaster)(09と同じ)

つぎにローカルリポジトリの開発ブランチも最新にする(それ以外のブランチは不要※220322実験済)
22_ローカルリポジトリ上で、開発ブランチをチェックアウトする(11と同じ)
23_リモートリポジトリの開発ブランチの変更内容をローカルリポジトリでフェッチする
24_現在いるブランチにリモートリポジトリの内容をマージする(リモートの開発ブランチ→ローカルの開発ブランチ)

25_開発を行って、ローカルリポジトリの開発ブランチ上にコミットする(12と同じ)

26_ローカルリポジトリ上で、masterブランチをチェックアウトする(07と同じ)
27_リモートリポジトリのmasterブランチの変更内容をローカルリポジトリでフェッチする(08と同じ)
28_現在いるブランチにリモートリポジトリの内容をマージする(リモートのmaster→ローカルのmaster)(09と同じ)

29_ローカルリポジトリで、再度開発ブランチをチェックアウトする(11と同じ)
30_その開発ブランチをリモートリポジトリにプッシュする(18と同じ)

masterと開発対象の開発ブランチ以外はローカルに反映していない状態で、プッシュして問題なし。

開発が完了し、デプロイするまで(masterブランチへのマージ~デプロイ)

※プルリクエストはとりあえず略

まずはローカルリポジトリのmasterブランチを最新にする
31_ローカルリポジトリ上で、masterブランチをチェックアウトする(07と同じ)
32_リモートリポジトリのmasterブランチの変更内容をローカルリポジトリでフェッチする(08と同じ)
33_現在いるブランチにリモートリポジトリの内容をマージする(リモートのmaster→ローカルのmaster)(09と同じ)

つぎにローカルリポジトリの開発ブランチも最新にする(それ以外のブランチは多分不要)
34_ローカルリポジトリ上で、開発ブランチをチェックアウトする(11と同じ)
35_リモートリポジトリの開発ブランチの変更内容をローカルリポジトリでフェッチする(23と同じ)
36_現在いるブランチにリモートリポジトリの内容をマージする(リモートの開発ブランチ→ローカルの開発ブランチ)(24と同じ)

37_ローカルリポジトリでmasterブランチをチェックアウトする(07と同じ)
38_開発ブランチをmasterブランチにマージする

(コンフリクトが発生した場合)
39_コンフリクトを解消する
40_コンフリクトを解消したファイルをステージングする(git add)
41_コミットする
42_ローカルリポジトリで開発ブランチを削除する
43_マージ後のmasterブランチをリモートリポジトリにプッシュする
44_リモートリポジトリで開発ブランチを削除する

準備

gitのインストール

git for windowsをインストールする。
https://gitforwindows.org/

デフォルト
image.png

notepadに変えておく。(よくわからない)
image.png

改行コードはinputを選択しておく
image.png
参考:https://qiita.com/uggds/items/00a1974ec4f115616580

よくわからない↓
image.png

image.png
image.png

その他インストール時の設定は下記参考。
https://qiita.com/toshibe/items/dcf3dd48fdc74c91b409

git上でメールアドレスとユーザ名の登録

どこのディレクトリでもよいので、エクスプローラ上で右クリック>Git Bash Here

git config --global user.name ****
git config --global user.email @@@@

****は任意のユーザ名
@@@@は任意のメールアドレス

ヒント:プロジェクトごとに設定することもできる。
その場合は対象プロジェクトのディレクトリ内で上記の--globalを--localに変えて実行

本題

01_ディレクトリの作成

共有可能なディレクトリを選んで、カラのディレクトリを作る。
このディレクトリが、リモートリポジトリの器になる。
慣例により、ディレクトリ名の末尾には「.git」をつける
image.png

※画像はローカルディレクトリだが、ファイルサーバ上のディレクトリでも大丈夫。

02_カラのリモートリポジトリを作る

さっき作った共有用のディレクトリを右クリック>Git Bash Here
image.png

git init --bare --shared

image.png
↓するとこうなる
image.png

03_カラのリモートリポジトリをクローンしてローカルリポジトリを作る

ローカルの作業フォルダを作っておき、右クリック>Git Bash Hereで、

git clone ***

※「***」はリモートリポジトリのファイルパス。階層区切り記号はバックスラッシュや円マークではなく、フォワードスラッシュを使う。
image.png
↓するとこうなる
image.png

04_ローカルリポジトリ上で作業を行う

05_コミットする

git commit -m "first commit"

06_プッシュする

git push origin master

最初のコミット以降の開発(開発ブランチ作成~開発ブランチの一時保存のためのプッシュ)

07_リモートリポジトリの変更内容をローカルリポジトリでフェッチする

git fetch origin

これを行うことで、ローカルのリモート追跡ブランチ という特別な場所に、
リモートリポジトリの最新の内容が取り込まれる。
ローカルのリモート追跡ブランチ とは、ローカルのマスターブランチとは違う。

08_念のためローカルリポジトリ上で、リモートリポジトリの変更内容を統合させたいブランチに移動しておく
特にブランチを作っていなければ、下記***は masterとなる。チェックアウトをしていなければはじめからmasterブランチにいるはずなので、
以下の操作は不要。

09_現在いるブランチにリモートリポジトリの内容をマージする

git merge origin/master

この操作を行うことで、ローカルのマスターブランチに、ローカルのリモート追跡ブランチの内容を統合することができる

10_ローカルリポジトリ上で開発を行う。ここで新しいブランチを作る

git branch *** @@@

***は、新しいブランチ名
@@@は、もとにするブランチ名(もとにするブランチ名を省略すると、現在チェックアウトしているブランチをもとに新しいブランチが作られる)

11_今作った新しいブランチをチェックアウトする

git checkout ***

12_そこで開発を行って、ローカルリポジトリの新しいブランチ上にコミットする

13_ローカルリポジトリでマスターブランチをチェックアウトする

14_リモートリポジトリからmasterブランチをフェッチ&マージして最新にしておく
 ※ここではmasterブランチは触っていない前提。新しいブランチのみで開発を行ったとする。

15_ローカルリポジトリで、再度新しいブランチをチェックアウトしておく

16_その新しいブランチをリモートにプッシュする

git push -u origin ***

***はプッシュするブランチの名前。
リモートリポジトリに存在してない場合は、リモートリポジトリに新しく作られる。
-uは、ローカルリポジトリのブランチに対して、リモートリポジトリ上の同名のブランチを
上流ブランチとして設定するためのオプション(理解甘め。上流ブランチが何なのかの理解は保留)

開発が完了し、デプロイするまで(masterブランチへのマージ~デプロイ)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1