60_Git - hiroshi-yamada-jp/public GitHub Wiki

Git公式

参考資料

GUI Tool

TortoiseGit

PyCharm

利用方法は省略。基本操作は、GUIで実行可能

Gitコマンド

初期設定

  • 指定ディレクトリの作成とgit初期化
mkdir <git_dir>
cd <git_dir>
git init
  • git configの初期設定
git config --global user.name <Name>
git config --global user.email <E-mail>
# proxy設定が必要な場合、以下を実行する
git config --global http.proxy http://proxy.com:8080
git config --global https.proxy http://proxy.com:8080
# SSL認証不要な場合、以下を設定する
git config --global http.sslVerify false
# 必要な場合、リモートアドレスの設定を行う
git remote add origin https://xxxx/xxx.git

状態確認

  • git config設定状態の確認と設定解除
# 状態確認
git config --global --list
git config --list
# 設定解除
git config --global --unset <設定解除項目名>
git config --unset <設定解除項目名>
  • git 状態確認
git status        # ファイルの更新状況を確認する
git log           # コミット履歴を確認する
# リモート設定の確認
git remote -v

差分確認

git diff             # 作業ツリーとステージングエリアの差分確認
git diff --cached    # ステージングエリアと直前のコミット(リポジトリ)の差分

リポジトリ操作

  • git clone -b <ブランチ名> <リモートURL> : リモートリポジトリの内容をローカルリポジトリにclone(コピー)する
git clone https://url/xxx.git   # リモートから現ディレクトリにclone
git clone -b dev https://url/xxx.git   # リモートの指定ブランチ(dev)から現ディレクトリにclone
# git fetch:リモートの「master」ブランチ内容を ローカルの「origin/master」ブランチに反映 ※ 更新情報の取得のみ
# git merge: 特定ブランチやリビジョンを、ブランチに取り込む
# git pull: 「git fetch」と「git merge」をまとめて実行するコマンド
# 実施例
git fetch
git merge origin/master 
git pull  # ブランチ名省略時: 現ブランチにリモートブランチの内容を取り込む
git pull origin master  # 現ブランチにリモートブランチの内容を取り込む

# git push:ローカルブランチ「local」を、リモートリポジトリ「origin」以下の同名ブランチに反映する
git push origin local

ブランチ関連

  • ブランチ表示
git branch     # ローカルブランチ一覧表示
git branch -r  # リモートブランチ一覧表示
git branch -a  # リモート&ローカルブランチ一覧表示
  • ブランチ操作
git branch <branch_name>     # 指定ブランチを作成
git branch -d <branch_name>  # 指定ブランチの削除
git checkout <branch_name>   # 指定ブランチにチェックアウト

git resetコマンド

  • コミット履歴やステージングエリアの状態を変更するコマンド
オプション ファイル状態
--soft HEADだけ変更し、ステージングと作業内容を維持
--mixed (Default) HEADとステージングエリアを変更し、作業内容を維持
--hard HEAD、ステージングエリア、作業内容の全てを指定コミットに戻す。全変更を破棄

ローカル環境のリセット

  • ローカルにある内容をリモートの最新状態に上書き(リセット)
git branch                             # 現在のブランチを確認
git fetch origin                       # リモートの最新情報を取得
git reset --hard origin/<ブランチ名>    # リモートブランチの状態にローカルを強制的に合わせる

サブモジュール(git submodule)

下記資料を参照

** サブモジュールの登録方法 **

$ mkdir sub_module
$ cd  sub_module/
# パターン1. 追加したいディレクトリに移動し、サブモジュール追加
$ git submodule add https://<gitlab-url>/xxx.git <submodule_name>
# パターン2. 上記でうまくいかない場合、サブモジュールをcloneする方法もある
$ git clone --recurse-submodules https://<gitlab-url>/xxx.git
# 追加内容の確認
$ git submodule status 

** サブモジュール側のリポジトリの更新内容を取り込む **

$ cd sub_module/
# 全サブモジュールの更新
$ git submodule update --remote --recursive
# 特定サブモジュールのみ更新
$ git submodule update --remote --recursive <submodule_name>

** 追加したサブモジュールの削除(初期化)方法 **

$ cd  sub_module/
$ git submodule deinit -f <submodule_name>
# 上記コマンドを実行後に対象ファイルを削除する
$ rm -rd <submodule_name>

Tips

Git Serverを使わないLocal Gitを行う方法

下記記事参照。gitサーバ替わりをローカルに作成し、それを使えば一人Gitは可能。

-ローカル環境にGit環境を構築する方法をわかりやすく解説!

⚠️ **GitHub.com Fallback** ⚠️