LoginSignup
1
1

More than 3 years have passed since last update.

git command(clone checkout reset commit stash merge rebase)

Last updated at Posted at 2018-10-14

Gitコマンド(クローン、チェックアウト、コミット取り消し、スタッシュ、マージ、リベース)

Qiitaの記事には毎回助けられているので、Gitコマンドを勉強がてらまとめてみました。

用語 ここでの意味
クローン リポジトリ環境をローカルに作成すること。
リモート リモートにあるブランチ
ワークツリー ローカルにあるブランチ
インデックス コミットを管理する対象のこと。
チェックアウト ブランチの変更又はローカルの編集をリモートで上書きすること。
スタッシュ インデックスを一時退避すること。
マージ 外部のブランチと自身のブランチとマージすること。
リベース 自身のブランチの派生元を繋ぎ変えること。
コンフリクト 自身と相手のブランチの修正ファイルが衝突すること。

a.リポジトリ操作

a-1.クローン
cd /pc_data/project/rkamiya
git clone git@bitbucket.org:rkamiya87/ios_mockup.git
git clone https://rkamiya87@bitbucket.org/rkamiya87/ios_mockup.git
git clone -b develop https://rkamiya87@bitbucket.org/rkamiya87/ios_mockup.git

b.ブランチ操作

b-1.リモートの状況を取得する。
git fetch

b-2.現在のブランチを確認する。
git branch -a

b-3.現在のブランチを変更する。
git checkout -q develop

b-4.現在のブランチからブランチを作成する。
git checkout -b feature/issue#200

b-5.ブランチをリモートに作成する。
git push -u origin master

b-6.ワークツリーのブランチを削除する。
git branch -D feature/issue#200

b-7.リモートのブランチを削除する。
git push --delete origin feature/issue#200

c.ファイル及びインデックス操作。

c-1.ファイルステータスを確認する。
(緑がインデックスに追加済み、赤が未追加)
cd /pc_data/project/rkamiya/ios_mockup
git status -uall -s

c-2.インデックスに変更ファイルを追加する。
git add ./.gitignore
git add ./IOSMockUp
git add .

c-3.インデックスの追加ファイルをリセットする。
git reset ./.gitignore
git reset ./IOSMockUp
git reset .

c-4.インデックス及び物理的にファイルを削除する。
git rm ./.gitignore
git rm -rf ./IOSMockUp

c-5.ファイル名、ファイルパスを変更する。
git mv ./TestViewController.swift ./MemuViewController.swift

c-6.ファイルをチェックアウト状態に戻す。
git checkout feature/issue#200 ./.gitignore
git checkout feature/issue#200 ./IOSMockUp
git checkout feature/issue#200 .
git checkout d8dd762 ./IOSMockUp

c-7.ファイルの変更箇所を確認する。
git diff feature/issue#200 ./.gitignore
git diff feature/issue#200 ./IOSMockUp
git diff feature/issue#200 .
git diff d8dd762 .

gitコマンドのvi形式の操作方法。
G ... 先頭へ
shift + G ... 終端へ
control + f ... ページ進む
control + b ... ページ戻る
/ キーワード ... 検索
n ... 検索時次へ
N ... 検索時前へ
q ... 閉じる。

c-8.インデックスをワークツリーにコミットする。
git commit -m "initial commit"
git commit -m "commit test"

c-9.ワークツリーをリモートにあげる。
git push

c-10.リモートをワークツリーに適用する。
git pull origin develop

d.コミット番号を確認する。

git log --oneline --decorate --graph --all

e.HEADを変更する。

git checkout -q 92d593f

f.ワークツリーのコミットを取り消す。

git checkout -q feature/issue#200
git reset --soft HEAD^

g.ワークツリーでリモートを上書きする。

(リモートのソースが消えるので必ず上書き内容を確認すること)
git push -f origin feature/issue#200

h.スタッシュする。

h-1.インデックスに追加したファイルをスタッシュする。
git stash
git stash save "stash1"

h-2.スタッシュ番号を表示する。
git stash list

h-3.スタッシュのファイル一覧を表示する。
git stash show stash@{0}

h-4.スタッシュの差分を表示する。
git stash show -p stash@{0}

h-5.スタッシュを適用する。
git stash apply stash@{0}

h-6.スタッシュを削除する。
git stash drop stash@{0}

h-7.スタッシュを全て削除する。
git stash clear

i.ブランチを自身にマージする。

i-1.マージする。
git checkout -q feature/issue#200
git merge feature/issue#201

i-2.コンフリクト時の対応を行う。
・コンフリクトした場合は、コンフリクト位置を修正する。
git add .
git commit -m "fixed conflict"

i-3.マージをリセットする。
git reset

j.ブランチの派生元をリベースする。

j-1.リベースする。
git rebase -i 852f0a3

j-2.リベースコメントをviで編集する。
・1行目のpickを残し、それ以降のコミットの先頭をfixupにする。
・最後はwqで保存する。

j-3.コンフリクト時の対応を行う。
・コンフリクトした場合は、コンフリクト位置を修正する。
git add .
git commit -m "fixed conflict"
git rebase --continue

j-4.リベースをリセットする。
git rebase --abort

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