前回の【Git】Gitの基本操作と基本コマンドの続きになります。
リモート情報の確認
git remote
origin
詳細情報を表示。
git remote -v
origin https://github.com/hukushima/gitpr.git (fetch)
origin https://github.com/hukushima/gitpr.git (push)
リモートリポジトリの複数登録
git remote add リモート名 リポジトリURL
originとは別のリポジトリを追加。
例
# github上でリポジトリを作成。
git remote add bak https://github.com/hukushima/git_bak.git
# 追加できているか確認
git remote
bak
origin
# master情報をpush
git push -u bak master
fetchコマンド
fetchコマンドを使ってリモートリポジトリからローカルリポジトリに情報を取得する。
※取得するだけで反映されるわけではない。
git fetch リモート名
例
git fetch origin
mergeコマンド
fetchで取得したリモートリポジトリの情報を反映する。
git merge リモート名/ブランチ名
例
git merge origin/master
pullコマンド
リモートから情報を取得してマージまで一気に済ませたい時に使う。
fetchとmerge同時にできる。
git pull origin master
# 省略可
git pull
一気に済ませるから楽だけど、危険でもあるのであまり使わないイメージ。
git remote show コマンド
git remote コマンドより詳細な情報が確認できる。
git remote show リモート名
例
git remote show origin
リモート名の変更
git remote rename 旧名 新名
リモート名の削除
git remote rm リモート名
ブランチ
並行して複数機能を開発するためにある。
分岐して開発していくためのもの。
コミットを指し示すもの。
masterブランチはリリース専用ブランチにするのが基本。
HEAD
現在作業しているブランチを指し示すもの。
ブランチの新規追加
ブランチを新しく作成する。
git branch ブランチ名
ブランチ一覧
git branch
# リモートのブランチも確認
git branch -a
ブランチがどのコミットを指しているか確認する。
git log --decorate
ブランチを切り替える
git cheackout ブランチ名
マージ
他の人の変更内容を取り込む。
git merge ブランチ名
git merge リモート名/ブランチ名
コンフリクト
複数人で同じ箇所を変更してしまった場合、どれを優先させるべきかわからない状態。
解決方法
変更が被った箇所が以下のように表示される。
HEADが変更した部分
<<<<<<HEAD
=====
他の人が変更した部分
>>>>>>otherbranch
どちらかの変更を削除してファイルを綺麗にする。
そもそもコンフリクトを起こさないのが一番なので、
mergeする前にcommitなどをして変更中の状態を無くしておくよう心がける。
ブランチ名の変更
git branch -m ブランチ名
ブランチの削除
git branch -d ブランチ名
まとめ
次回に続きます。