LoginSignup
0
0

More than 3 years have passed since last update.

Gitコマンドについて

Posted at

Gitについての、流れをまとめてみました。

リポジトリとは

Gitでファイルを管理する場所
- ローカルリポジトリ
- リモートリポジトリ(publicリポジトリとprivateリポジトリ)

Gitコマンドと流れ

①リモートリポジトリ→ローカルリポジトリへダウンロード

  • git clone (新規)
  • git pull origin (上書き)

②gitの管理

  • git status(状態の確認)

    ・赤文字:gitで管理していないファイル
    ・緑文字:gitの管理化にあるファイル(ステージング)

  • git add ファイル名
    gitでファイルを管理させる際に使用(ステージングする際に使用)
    ※git add . と最後にファイル名ではなくドットをつける事により全てのファイルをステージング

  • git commit -m "コミットメッセージ"
    gitに保存する

  • git log
    コミット履歴の確認

③ローカルリポジトリ→リモートリポジトリへアップロード

  • git push origin
  • git push origin develop(developブランチへアップロード) ※originはリモートサーバーのこと

ブランチ

ブランチを切る

  • git checkout -b develop master(マスターからdevelopブランチを切るという意味)

ブランチの切替

  • git checkout master(マスターブランチへ切替)
  • git checkout ブランチ名(作業するブランチへ切替)

ブランチの確認

  • git branch
  • git branch -a(-aがつくとリモートも含めた全てのブランチを表示)

マージ

  • git merge develop(developブランチをマスターへマージ) ※マージしたいブランチ(マスター)で行う

プルリクエスト(GitHubを使ったマージ前の確認)

作成したブランチをマスターにマージしてもらいたいという依頼のこと
1. AさんがGitHubでプルリクエストを作成(Create Pull Request)
2. Bさんが内容を確認しレビューを行う(Files changed箇所で変更画面の確認・コメントを記述ができる)
3. 最終的に問題なければ、マージボタンを押す事によりマージができる

同じブランチで作業する場合(共同開発)

AさんとBさんのローカルリポジトリで別々のコミット履歴が出来上がる。
Aさんが先にプッシュ
次にBさんがプッシュするとエラーが発生する

プッシュの前にリモートの状態をローカルにマージしておく必要がある(下の①もしくは②の内容)
① git fetch origin/develop
※このコマンドが実行されるとVIエディタが開かれるので、「:wq」と入力しEnterキーを押すことで、マージが行われる

② git pull develop
※「pull」は「fetch+merge」を一つのコマンドにまとめたもの

コンフリクト

編集している箇所が同じで競合状態にある事
1. Aさんが編集しプッシュ
2. Bさんが同じ箇所を編集していてPullするとコンフリクトが発生
3. コンフリクトを解消してからコミットしてプッシュする

git rebase(mergeとの違い)

  • merge
    コミット履歴が時系列のまま
  • rebase
    Aさんのコミット履歴の後にBさんのコミット履歴を持ってくる(一直線のコミットツリーになる) git fetch origin git rebase origin/develop develop git push origin -f ※rebaseの場合、-fが必要で強制的にプッシュする事になる

git reset と git stash

  • git reset --hard HEAD
    今編集中の内容を全てリセットして、最終コミットのところまで戻す

  • git stash
    コミットしていない内容をいったん全て削除

  • git stash pop
    内容を元に戻す
    ※違うブランチで作業していて、ブランチを切り替える必要がある際に使える

0
0
0

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
0
0