LoginSignup
174
190

More than 5 years have passed since last update.

Gitでよく使うコマンドまとめ

Last updated at Posted at 2014-03-28

Gitリポジトリからソースをクローンする。

$ git clone <リモートのクローン先> [optional ローカルのフォルダ名]

リモート操作

リモートブランチも含めたブランチ一覧を表示する。

$ git branch -a

例)

$ git branch -a
feature2535
feature2558
* master
remotes/origin/1.2.1
remotes/origin/HEAD -> origin/master
remotes/origin/testbra

リモートからブランチを取得する。

$ git fetch origin <ブランチ名>

リモートからブランチをチェックアウトする。

$ git checkout -b <作成ブランチ名> <リモートブランチ名>

例)

git checkout -b testbra origin/testbra

リモートブランチを削除する

$ git push origin --delete <削除するリモートブランチ名>

または

$ git push origin :<削除するリモートブランチ名>

ブランチ名を変更する

変更対象のブランチ移動

$ git branch -m <変更後のブランチ名>

最新のインデクスからmergeする。

$ git merge FETCH_HEAD

ブランチ操作

ブランチ一覧を表示する。

$ git branch

ブランチを作成する。

$ git branch <ブランチ名>

ログの閲覧

特定のコミットのログを見る。

$ git show <タグ名など>

コミットログの一覧を見る。

$ git log

比較の操作

リビジョン間の差分(ファイル名のみ)を確認する。

git diff --stat --name-only <比較するリビジョン> <比較するリビジョン>

--name-only を外せば、中身の比較も表示する。

履歴の操作。

HEADの位置を変更する。

HEADとは簡単にいうと、 使用中のブランチの最新のコミット位置のこと。このHEADの位置を自由に操作することができる。

ワーキングツリーの変更はそのままにする。

git reset --soft {HEADの位置}

例) HEADを1世代前に戻す場合は git reset --soft HEAD^^

ワーキングツリーの変更もHEADの状態に変更。

HEADのリビジョンから以前のリビジョンにコミットを戻す。 ソースの変更も戻してしまう

$ git reset --hard {HEADの位置}

マージしてコンフリクトが多発したとき、なかったことにする。

git reset --hard ORIG_HEAD

HEADの移動した履歴を見る。

git resetなどでHEADの履歴を見ることができる。

git reflog

例) git reflog

f7e2b6d HEAD@{0}: reset: moving to HEAD@{1}
0d977b7 HEAD@{1}: reset: moving to HEAD^
f7e2b6d HEAD@{2}: checkout: moving from xxxxx to yyyy
357f1aa HEAD@{3}: merge FETCH_HEAD: Fast-forward
594e4fe HEAD@{4}: checkout: moving from zzzzzz to xxxxxx

上の例の説明。

  1. $ git reset --hard HEAD^ を実
  2. その後、git reset --hard HEAD@{1}でHEADの位置を 1を実施する前に戻している。

インデックスの操作。

インデックスのファイルを追加。

$ git add {追加するファイル}

インデックスからファイルを削除。

$ git rm --cached <filename>

タグ操作

ローカルにあるタグの一覧を表示する。

$ git tag

リモートのタグを取得する。

$ git pull --tags

タグからチェックアウトしてブランチを作成する

$ git checkout refs/tags/{タグ名}

タグを作成する。

$ git tag -a <タグ名>

ローカルのタグを リモートにpushする。

$ git push --tags

ローカルのタグを削除する。

$ git tag -d <タグ名>

リモートのタグを削除する場合は、 ローカルのタグを削除したのち、削除したタグをpushする。

$ git tag -d <タグ名>
$ git push origin :<タグ名>

or

$ git push --delete <タグ名>

タグの情報を確認する。

git show <タグ名>

ワークツリーの変更ファイルを一時的に退避させる。

スタックに一時的に退避させる

git stash

スタックから退避したファイルを取り戻す

$ git stash pop

スタックから退避した最新作業を削除する

$ git stash drop

スタックから退避した全ての作業を削除する

$ git stash clear

他のブランチの指定の変更を反映する。

$ git cherry-pick {反映させる変更が含まれるリビジョン}

あまり使わないかも知れないけど、たまに必要になる操作。

すでにcloneずみのリポジトリを別のリポジトリにpushする。(bareリポジトリ初期pushの場合)

$ git push <bareの新リポジトリ> master

cloneしたローカルリポジトリのリモートリポジトリを切り替える。

$ git remote set-url origin <切り替え先リモートリポジトリ>

例)確認してからリポジトリを切り替える。

  • git config -lでremote.origin.url=<現在のリモートリポジトリURL>を確認。
  • git remote set-url origin <切り替え先リモートリポジトリ>を実行。
  • 再度git config -lでremote.origin.urlが<切り替え先リモートリポジトリ>に変更されていることを確認。
174
190
2

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
174
190