2
1

More than 1 year has passed since last update.

gitを使ったバージョン管理の基本メモ(Win10, 社内ファイルサーバ)

Last updated at Posted at 2022-03-08

全体像

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

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

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

(masterブランチで開発を行う場合)(あらたなローカル開発環境を使う場合)

07_リモートリポジトリの変更内容をローカルリポジトリにクローンする
08_ローカルリポジトリ上で開発を行う(04と同じ)
09_変更内容をローカルリポジトリにコミットする(05と同じ)
10_ローカルリポジトリのコミット内容をリモートリポジトリにプッシュする(06と同じ)

(masterブランチで開発を行う場合)(既存のローカル開発環境を使う場合)

07_リモートリポジトリの変更内容をローカルリポジトリでフェッチする
08_ローカルリポジトリ上で、リモートリポジトリの変更内容を統合させたいブランチに移動しておく
09_現在いるブランチにリモートリポジトリの内容をマージする
10_ローカルリポジトリ上で開発を行う(04と同じ)
11_変更内容をローカルリポジトリにコミットする(05と同じ)
12_ローカルリポジトリのコミット内容をリモートリポジトリにプッシュする(06と同じ)

(新しいブランチを作って開発を行う場合)(既存のローカル開発環境を使う場合)

07_リモートリポジトリの変更内容をローカルリポジトリでフェッチする
08_念のためローカルリポジトリ上で、リモートリポジトリの変更内容を統合させたいブランチに移動しておく
09_現在いるブランチにリモートリポジトリの内容をマージする
10_ローカルリポジトリ上で開発を行う。ここで新しいブランチを作る
11_今作った新しいブランチをチェックアウトする
12_そこで開発を行って、ローカルリポジトリの新しいブランチ上にコミットする
13_ローカルリポジトリでマスターブランチをチェックアウトする
14_リモートリポジトリからmasterブランチをフェッチ&マージして最新にしておく
15_ローカルリポジトリで、再度新しいブランチをチェックアウトしておく
16_その新しいブランチをリモートにプッシュする

(新しいブランチで開発を行う場合)
07_リモートリポジトリの変更内容をローカルリポジトリにクローンする
08_マージする?
09_ローカルリポジトリ上で新しいブランチを作成する
10_新しいブランチをチェックアウトする
11_ローカルリポジトリ上で開発を行う(04と同じ)
12_変更内容をローカルリポジトリにコミットする(05と同じ)
13_ローカルリポジトリのコミット内容をリモートリポジトリにプッシュする(06と同じ)

準備

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

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

(masterブランチで開発を行う場合)(あらたなローカル開発環境を使う場合)

07_リモートリポジトリの変更内容をローカルリポジトリにクローンする

git clone ***

08_ローカルリポジトリ上で開発を行う(04と同じ)
09_変更内容をローカルリポジトリにコミットする(05と同じ)
10_ローカルリポジトリのコミット内容をリモートリポジトリにプッシュする(06と同じ)

(masterブランチで開発を行う場合)(既存のローカル開発環境を使う場合)

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

git fetch origin

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

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

git checkout ***

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

git merge origin/master

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

10_ローカルリポジトリ上で開発を行う(04と同じ)
11_変更内容をローカルリポジトリにコミットする(05と同じ)
12_ローカルリポジトリのコミット内容をリモートリポジトリにプッシュする(06と同じ)

(新しいブランチを作って開発を行う場合)(既存のローカル開発環境を使う場合)

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 origin ***

***はプッシュするブランチの名前。
リモートリポジトリに存在してない場合は、リモートリポジトリに新しく作られる。
ただしこのままだとローカルリポジトリのブランチに上流ブランチが設定されていない状態なので、
次のようにする(上流ブランチが何なのかの理解は保留)

git push -u origin ***

★220315 次、
(既存ブランチ)(既存のローカル開発環境を使う場合)
(異なるブランチ)(既存のローカル開発環境を使う場合)=リモートにあってローカルにないブランチをローカルに持ち込む

https://qiita.com/matsumon-development/items/d3231acccc08c8d74c21

(異なるブランチ)(既存のローカル開発環境を使う場合)

リモートリポジトリとローカルリポジトリとで最新のコミットがそれぞれ異なるブランチで行われているケースを想定する

image.png

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

git fetch origin

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

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

git checkout ***

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

git merge origin/master

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

10_ローカルリポジトリ上で開発を行う(04と同じ)
11_変更内容をローカルリポジトリにコミットする(05と同じ)
12_ローカルリポジトリのコミット内容をリモートリポジトリにプッシュする(06と同じ)

プル=フェッチ+マージ である。
参考
https://pointsandlines.jp/env-tool/git-fetch-pull

2
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
2
1