LoginSignup
0
0

More than 3 years have passed since last update.

Git 基礎の理解 

Last updated at Posted at 2021-01-08

Udemyの講座を受講したので備忘録としてまとめてみた

もう怖くないGit!チーム開発で必要なGitを完全マスター

Gitの設定

初期設定

terminal.
% git config --global <内容> //pc全体の設定
% git config --global user.name <名前> //名前の設定
% git config --global user.email <アドレス>//メールアドレスの設定

エイリアスを設定し入力コマンドを短縮

terminal.
% git config --global alias.<新コマンド> commit //commitコマンド設定
% git config --global alias.<新コマンド> status //statusコマンド設定
% git config --global alias.<新コマンド> branch //branchのコマンド設定
% git config --global alias.<新コマンド> checkout //checkoutのコマンド設定

リポジトリ作成

terminal.
% git init

ブランチ操作コマンド

terminal.
% git branch  //ブランチの一覧表示
% git branch <ブランチ名>  //ブランチの追加
% git checkout <ブランチ名>  //ブランチの切り替え
% git checkout -d <ブランチ名>  //ブランチを追加して切り替え
% git switch -c <ブランチ名> //ブランチを追加して切り替え
% git branch -m <ブランチ名>  //<ブランチの名前変更>
% git branch -d <ブランチ名>  //ブランチの削除
% git branch -D <ブランチ名> //ブランチの強制削除

リモートリポジトリ(GitHub)の操作コマンド

terminal.
% git remote add <github url>  //新規追加
% git remote add origin <github url>  //URLを別名(origin)で新規追加
% git remote  //リモートリポジトリ名の表示
% git remote -v  //リモートリポジトリのURLの表示
% git remote show <リモート名>  //リモートリポジトリの詳細情報を表示
% git remote rename <旧リモート名><新リモート名>  //リモートリポジトリ名の変更
% git remote rm <リモート名>  //リモートリポジトリの削除

GitHubにpushするまでの流れ

terminal.
% git status  //変更内容の確認
% git add <ファイル名>  //変更内容をステージ(index)に追加
% git commit  //変更内容をコミット
% git push <リモート名><ブランチ名>  //変更内容をリモートリポジトリ(GitHub)へ送信

GitHubから取り込む流れ

リモート→ローカル→ワークツリー

terminal.
% git fetch <リモート名>  //ファイルの取得
% git merge <リモート名><ブランチ名>  //取得したファイルをワークツリーへ統合

リモート→ワークツリー

terminal.
// ※HEADのブランチ確認
% git pull <リモート名><ブランチ名> //リモートから取得してmergeまでを一度に実行

変更差分・履歴の確認

terminal.
% git diff <ファイル名>  //ステージ(index)に追加前の変更分
% git diff --staged  //ステージ(index)に追加後(commit前)の変更分

% git log  //commit済の変更履歴を確認
% git log -p <ファイル名> //commit済の変更履歴の詳細な差分を確認
% git log -n <コミット数>  //表示するcommit数の指定

変更・取り消し

terminal.
//  ワークツリー内の変更取り消し
% git checkout --<ファイル名>
% git checkout --<ディレクトリ名>
% git checkout -- .  //ワークツリー内全ての変更の取り消し

//  ステージ(index)に追加した変更の取り消し ※ワークツリーの変更は取り消されない
% git reset HEAD <ファイル名>
% git reset HEAD .  //ステージ(index)に追加した全ての変更の取り消し

//  直前のcommitの変更 ※pushする前のcommit
% git commit --amend

mergeとコンフリクトの解消

merge

変更内容をリモートリポジトリから自分のブランチに取り込む作業のこと

コンフリクト

mergeした際に同じ箇所の変更が競合すること

terminal.
% git merge <リモート名>/<ブランチ名>  //リモートリポジトリから変更を取り込む

コンフリクトの解消

① コンフリクトが起きた箇所の内容を書き換える
② 「<<<」 「===」 「>>>」 の記述を削除する

リベース

変更履歴を一直線に整えて取り込む

terminal.
% git branch
  master2
* master

% git checkout master2
% git rebase master
% git checkout master
% git merge master2

commit履歴の書き換え

terminal.
% git rebase -i HEAD~<コミット数(3)>

pick a0ca45c github 追記
edit 91f7a7e master2新規作成  //先頭のpickをeditに変更
pick 53118f1 masterを新規作成

% git commit --amend  //変更したい内容を修正後
% git rebase --continue  //次のコミットへ移動 ※今回editは1つのみのため終了

複数のcommit履歴をまとめる
※squashに指定したcommitと直前のcommitがまとめられる

terminal.
% git rebase -i HEAD~<コミット数(3)>

pick a0ca45c github 追記
squash 91f7a7e master2新規作成  //先頭のpickをsquashに変更
squash 53118f1 masterを新規作成  //先頭のpickをsquashに変更

タグ

terminal.
% git tag <タグ名>  //タグの作成
% git tag -a <タグ名> -m <メッセージ>  //注釈付きタグの作成
% git tag <タグ名><コミット名>  //過去のcommitにタグを作成

% git show <タグ名>  //タグのデータを表示
% git push <リモート名><タグ名>  //タグをリモートリポジトリに送信
% git push < リモート名> --tags  //タグを一斉にリモートリポジトリに送信

stash

作業の一時避難

terminal.
% git stash  //作業を一時避難

% git stash list  //避難した作業の確認

% git stash apply  //避難した作業の復元
% git stash apply --index  //ステージ(index)の状況も復元

% git stash drop  //避難した最新の作業を削除
% git stash drop <スタッシュ名>  //避難した特定の作業を削除
% git stash clear  //避難した全ての作業を削除

まとめ

下記の講座ではより分かりやすく図解で表現されています。
基礎の基礎を理解できるためおすすめです。

もう怖くないGit!チーム開発で必要なGitを完全マスター

0
0
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
0
0