リモートリポジトリとの連携
リモートリポジトリから取得するには
git clone
ローカルのmasterブランチがリモートのmasterブランチを追跡可能に設定
cloneするとそのリモートリポジトリのshotnameはoriginとなります
登録されているリモートリポジトリを表示するには以下のコマンドを入力します
git remote -v
リモートリポジトリの手動追加することも可能です
git remote add
リモートリポジトリから最新版のファイルを落としてくる
git pull
ファイルを落とさずに更新状況や最新branchの情報を取得する
git fetch
git fetch
リモートリポジトリへのアップロード
git push
リモートは複数登録できるので
以下のようなログ表示になる場合もあります
上図のように様々なリポジトリの情報が表示され、格納されているバージョンが異なっていることがわかるかと思います。
リモートブランチをアップロードする
git push ブランチをアップすることができます
実際にどんなブランチが存在するのかについては
git remote show origin
で確認することができます
シナリオ1リモートリポジトリから取得して作業する
1.git cloneで最新版の取得を行う
2.git branchで自分のbranchを作成して更新作業
3.git add でファイルをコミット対象に追加する
4.git commitでコメントつきでコミットを行う
5.git pushでリモートリポジトリに送る
リモートのブランチの確認と取得
ときにはリモートのブランチを取得したい場合もあるでしょう
リモートリポジトリ内のブランチを含めて確認するには以下のコマンドを入力します
git branch -a
取得の際はブランチを作成してリモートブランチをチェックアウトします
git checkout -b <ブランチ名> <リモートブランチ名>
-bはブランチを作成してチェックアウトするためのオプションです
rebaseについて
先に誰かがmasterを更新してしまった場合、当然自分がブランチで作業していたもととなっていたmasterとズレが生じてしまいます
例えばexperimentというブランチを作成して作業していた場合、どうすればよいでしょうか?
mergeする
experimentをmasterにmergeすることで解決できます
ただ、experimentブランチはまだ作業中です。mergeするのは危険なことがあります。これを解決するためにgitにはrebaseという考え方があります。
つまり、誰かが更新したmasterへの変更内容を自分のbranchにマージしてしまい、継続して作業できるようにするための機能です。
git checkout experiment
git rebase master
この作業で自分が変更したファイルとかち合ってしまう事はよくあります。
手動でマージを行って、git addしたらgit rebase –continueを実行します。
前のバージョンに戻したい場合
git checkoutを使ってその当時のバージョンに戻すことができます
git checkout <コミット番号>
git checkoutはブランチの移動にも使いますが、前のバージョンに戻す場合にも利用されます
それを新規のブランチとして起こす場合はgit checkout –b <ブランチ名>を入力します