Help us understand the problem. What is going on with this article?

コマンドで操作するgit - 開発手順に沿って解説

More than 3 years have passed since last update.

開発手順に沿って解説するgitコマンド操作

通常の開発手順

ローカルの作業ディレクトリに移動する

$ cd [作業ディレクトリパス]

リモートリポジトリをローカルにクローンする

$ git clone [リポジトリパス]

ディレクトリ内の状態を調べる

$ ls

ローカルにリポジトリディレクトリが作られていることが確認できる

[リポジトリディレクトリ]

リポジトリディレクトリに移動する

$ cd [リポジトリディレクトリ名]

全ブランチを一覧表示して確認する

$ git branch -a

「develop」がローカルカレントブランチになっていることを確認する

* develop
  master
  remotes/origin/develop
  remotes/origin/master

上記のようになっていない場合「develop」をローカルカレントブランチにする

$ git checkout develop

ローカルカレントブランチ「develop」から開発ブランチ「feature/[featureブランチ名]」を作成する

$ git checkout -b feature/[featureブランチ名]

ブランチが作成されたメッセージを確認する

Switched to a new branch 'feature/[featureブランチ名]'

再度ブランチを一覧表示して確認する

$ git branch -a

開発ブランチ「feature/[featureブランチ名]」がカレントになっていることが確認できる

  develop
* feature/[featureブランチ名]
  master
  remotes/origin/develop
  remotes/origin/master

開発する

開発ブランチの差分を確認する

$ git status

変更した部分と追加したファイルが過不足なく表示されることを確認する

On branch feature/[featureブランチ名]
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   [変更したファイル/ディレクトリ]

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    [追加したファイル/ディレクトリ]

追加・変更したファイルをcommit候補に加える

$ git add *

または追加・変更したファイルの一部をcommit候補に加える

$ git add [候補に加えたいファイル/ディレクトリ]

開発ブランチの状態を再度確認する

$ git status

add処理した追加・変更ファイルがcommitリストにて確認できる

On branch feature/[featureブランチ名]
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    modified:   [追加したファイル]
    modified:   [追加したファイル]
    modified:   [追加したファイル]
    new file:   [変更したファイル]
    new file:   [変更したファイル]

追加・変更したファイルをcommitメッセージ付きでcommitする

$ git commit -m "[commitメッセージ]"

リモート「feature/[featureブランチ名]」ブランチにpushする

$ git push origin feature/[featureブランチ名]

pushされたメッセージを確認する

Total 0 (delta 0), reused 0 (delta 0)
To [リポジトリパス]
 * [new branch]      feature/[featureブランチ名] -> feature/[featureブランチ名]

ローカルブランチを削除する

$ git branch -d feature/[featureブランチ名]

ローカルからリポジトリを立ち上げる

※ ネットワーク設定やアカウントの権限により実行できないことがある

ローカルの作業ディレクトリに移動する

$ cd /[作業ディレクトリ]

リポジトリディレクトリを作成する

$ mkdir [リポジトリディレクトリ名]

ディレクトリ内の状態を調べる

$ ls

ローカルにリポジトリディレクトリが作られていることが確認できる

[リポジトリディレクトリ]

リポジトリディレクトリに移動する

$ cd [リポジトリディレクトリ名]

リポジトリディレクトリをgit管理ディレクトリに設定する

$ git init

git init成功メッセージが表示される

Initialized empty Git repository in [ローカル.gitパス]

リモートリポジトリを追加する

$ git remote add origin [リポジトリパス]

ファイルを追加する

追加したファイルをcommit候補に加える

$ git add *

追加・変更したファイルをcommitメッセージ付きでcommitする

$ git commit -m "[commitメッセージ]"

リモート「master」ブランチにpushする

$ git push origin master

取り消すコマンド

addを取り消す

直近の1件のaddを取り消す

$ git reset HEAD

直近の1件のcommit・pushを取り消す

※共同開発ブランチでは原則として利用しないこと

直近のcommitの変更点を確認する

$ git diff HEAD~1

差分を確認し取り消して問題ないことを確認する

diff --git a[変更されたファイル] b[変更されたファイル]
index 0f8c565..9a1e747 100755
--- a[変更されたファイル]
+++ b[変更されたファイル]
@@ -2,7 +2,7 @@
-    [変更前のコード]
+    [変更後のコード]

直近のcommitを取り消す

$ git reset --soft HEAD^

取り消した状態のままforce pushする

$ git push origin feature/[featureブランチ名] -f

pushメッセージでpush成功を確認する

Total 0 (delta 0), reused 0 (delta 0)
To [リポジトリパス]
 + 8559c29...8647645 feature/[featureブランチ名] -> feature/[featureブランチ名] (forced update)

取り消しが成功したかどうかローカルカレントブランチの状態を確認する

$ git status

commit前の状態に戻っていることが確認できる

On branch feature/git_command
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    modified:   [変更したファイル/ディレクトリ]

直近の複数件のcommit・pushを取り消す

※共同開発ブランチでは原則として利用しないこと

commit履歴を確認する

$ git log

commit履歴を確認する

commit a34e43548f821f24f213535e9ab300af991a6704
Author: [Author ID]
Date:   Thu Sep 10 15:48:30 2015 +0900

    [commitメッセージ]

commit 864764514e0ffd09bbd85e0734d9aa17dc509f9d
Author: [Author ID]
Date:   Thu Sep 10 15:15:01 2015 +0900

    [commitメッセージ]

commit 6da92864059a8287888f2abbe6740544927eb2ac
Author: [Author ID]
Date:   Thu Sep 10 11:39:21 2015 +0900

    [commitメッセージ]
・
・
・

直近の3件分を取り消し(4件前の状態になる)た場合の影響範囲を確認する

$ git diff HEAD~3

直近3件のcommitを取り消す(4件前の状態になる)

$ git reset --soft HEAD~3

取り消した状態のままforce pushする

$ git push origin feature/[featureブランチ名] -f

取り消しが成功したかどうかローカルカレントブランチの状態を確認する

$ git status

この状態でcommit・pushすると、3件存在していたcommitを1件にまとめることができる

$ git commit -m "[commitメッセージ]"
$ git push origin feature/[featureブランチ名]

取り込むコマンド

他のブランチのバージョンを取り込む

「develop」ブランチをpull --rebaseする

$ git pull --rebase origin develop

 

sekiyaeiji
フロントエンドエンジニア
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした