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

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

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

  • remoteにpushしない
  • remoteでbranch切ってそこにpush
  • 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でよくあるハプニングの対策とコマンドメモ