Gitでよく使うコマンド集



Page content

コマンドでのgit管理で基本的なもの、よく使うものをまとめた。



基本設定

$ git config --global user.name "name"
$ git config --global user.email "your@email.address"

リモートにあるプロジェクトをローカルにコピーする

  • リモートからcloneする

    $ git clone https://github.com/{user}/{project}.git

ローカルにあるプロジェクトをgit管理としリモートに上げる

  • カレントディレクトリをgit管理する

    $ git init
  • カレントディレクトリのファイルをgit管理に追加する

    $ git add .             # カレントディレクトリの全ファイル
    $ git add {file.name}   # カレントディレクトリの特定ファイル
  • 変更をcommitする

    $ git commit -m "commit message"
  • リモートを追加しpushする

    $ git remote add origin https://github.com/{user}/{project}.git
    $ git push -u origin master

ローカルの変更をリモートに反映させる

  • リモートの変更を取得する

    $ git pull
  • ブランチを作成する・切り替える

    $ git branch {branch_name]      # 作成
    $ git checkout {branch_name]    # 切り替え
    
    $ git checkout -b {branch_name] # 作成 & 切り替え
  • 編集したファイルをgit管理に追加する

    $ git add .             # カレントディレクトリの全ファイル
    $ git add {file.name}   # カレントディレクトリの特定ファイル
  • 変更をcommitする

    $ git commit -m "commit message"
  • リモートにpushする

    $ git push -u origin {branch_name}

ブランチ間で変更を反映する

  • commit履歴を見る

    $ git log
  • 他ブランチへの特定のcommitを取り込む

    $ git cherry-pick {commit_id}
  • 作業環境に別のブランチをマージする

    $ git merge {branch_name}           # ローカルブランチ
    $ git merge origin/{branch_name}    # リモートブランチ

作業を取り消す

  • addを取り消す

    $ git reset .             # カレントディレクトリ以下の更新のaddを取り消し
    $ git reset {file.name}   # 特定ファイルの更新のaddを取り消し
  • commitを取り消す

    • commit idでなく、HEAD~{n}で、n個前のcommitを指定することもできる。

      $ git reset --hard HEAD^    # 直前のコミットを取り消し、ワークディレクトリも書き換える
      $ git reset --soft HEAD^    # 直前のコミットを取り消す、ワークディレクトリはそのまま
      
      $ git reset --hard {commit_id}    # 特定のコミットを取り消し、ワークディレクトリも書き換える
      $ git reset --soft {commit_id}    # 特定のコミットを取り消す、ワークディレクトリはそのまま
  • pushを取り消す

    $ git reset --hard {commit_id}
    $ git push -f

作業中の変更を一時的に退避させる

  • 作業中の変更を退避させる

    $ git stash save
  • 退避させた作業中の変更一覧を確認

    $ git stash list
  • 退避させた作業中の変更一覧を確認

    $ git stash apply {stash_name}
  • 退避させた作業中の変更を削除

    $ git stash drop {stash_name}   # 特定のstashを削除
    $ git stash clear               # 全stashを削除

その他

  • コミットメッセージを変更する

    $ git commit --amend "new commit message"
  • ファイルをgit管理から外す

    • 一度git管理したファイルは.gitignoreに追加しただけではgit管理から外れないので、git rmで明示的にgit管理から外す必要がある。

      $ git rm -f {file.name}
  • ブランチを比較する

    $ git diff {branch_name1} {branch_name2}
  • ブランチを削除する

    $ git branch -d {branch_name}
    $ git branch -D {branch_name}