gitを使用した個人的開発の流れ - inokawablog

    gitを使用した個人的開発の流れ

    gitを使用した個人的開発の流れ

    • [x] remoteにpushしない
    • [x] remoteでbranch切ってそこにpush
    • [x] git pullではなくfetchをしてmergeをする

    作業を開始

    $ git branch -a #今いるブランチを確認 (-aをつけることでリモートブランチも見れる)
    $ git branch ブランチ名 #ブランチ作成
    $ git checkout -b ブランチ名 #ブランチ移動  (-bをつける事で新規にブランチを作成し移動)

    上記のように新しくブランチを切って初回のpushでは、以下のように聞かれます。

    $ git push
    fatal: The current branch ブランチ名 has no upstream branch.
    To push the current branch and set the remote as upstream, use
    
        git push --set-upstream origin ブランチ名

    最初はgit push origin master`というコマンドを打ちますが、これは`git push [remoteのリポジトリ] [remoteのブランチ]のようにoriginのmasterブランチにコミットの内容を反映させるコマンドです。

    origin master`を省略した`git pushのようにリモートリポジトリのブランチ名を省略すると、ローカルリポジトリのブランチと同じ名前のブランチへpushされます。その時にupstream branchを見ています。

    upstream branchがないのでgit push --set-upstream origin ブランチでセットする必要があります。fetchやpullをした場合は自動で生成されます。

    これを解決するには、以下を実行してください

    $ git config --global push.default current

    ちなみに、"git push --set-upstream origin ブランチ名"を実行して、

    $ git branch -a

    をすると、

    $ git branch -a
    * ブランチ名
      remotes/origin/ブランチ名     <- これがtracking branch
      master
      remotes/origin/master

    こんな感じになり、tracking branchが作成されています。
    こちらのtracking branchはfetchやpullをすると自動的に更新されます。

    Git で「追跡ブランチ」って言うのやめましょう

    次に、リモートのmasterブランチが更新されている可能性が高いので、作業再開時に必ずリモートリポジトリから最新の取り込みを行います。いかを実行してください。

    $ git fetch origin
    $ git merge origin/master

    git pull は現在チェックアウトしているブランチに merge するので、チェックアウトをし忘れて関係ない作業ブランチに pull してしまう可能性がある!!

    ファイルを編集したら

    $ git status #ファイルの編集状態確認
    $ git add . #コミットしたいファイル追加("."ではなくディレクトリを指定する事で個別に追加する事ができる)
    間違ってaddしてしまったらresetしましょう
    $ git reset
    
    # 特定のファイルのaddを取り消す
    $ git reset /path/to/xxx.yyy

    ステージングにあげたファイルを

    # 例git add app #appディレクトリのファイル変更分のみコミット対象にする
    $ git commit -m "コミットコメント" #addしたファイルをコミット

    特定のコミットまで戻したい場合は、

    $ git log //戻す対象のハッシュ値を調べる
    commit ************************
    
    $ git reset --hard ハッシュ値

    commitに関する記事を以下に書いておく。

    コミットログを確認

    ログを確認する場合は

    $ git log オプション

    で確認できる。

    オプションは以下になっている。

    option 説明
    --oneline 1行のみログ表示
    --decorate branch名、tag名などの別名を表示
    --graph revision graphを表示
    --branches 他のbranchのlogも表示
    --tags tagを表示
    --remotes remote branchなどを表示

    基本的には、

    $ git log --graph

    でログを見ればいいと思います。

    git logの例

    特定のブランチのログを見たければ、

    $ git log master..ブランチ

    のように..で繋いでログを観れる

    おまけ

    Gitでよくあるハプニングの対策とコマンドメモ