はじめに
今回はGitのコマンドを実際に動かして、バージョンの確認や変更について理解を深めたいと思います。参考図書はこちらの動かして学ぶ!Git入門を使用しました。
コマンド
30. git remote add リモート名 リポジトリ名
このコマンドは、リモートリポジトリとやり取りするときに使用するコマンドです。
$git remote add origin https://github.com/ユーザ名/リポジトリ名
originはリモートリポジトリにリモート付与した仮の名前であり、自由に決定できます。
リモートが正しく登録されたかはgit romote -vで確認できます。
$git remote -v
origin https://github.com/ユーザ名/リポジトリ名 (fetch)
origin https://github.com/ユーザ名/リポジトリ名 (push)
31. git push
このコマンドはリモートリポジトリにデータを送る際に使用するコマンドです。
git push リモート ブランチ名
32. リモート追跡ブランチの扱い
リモート追跡ブランチはリモートブランチの位置を記憶する特殊なローカルブランチです。ローカルリポジトリから、リモートリポジトリにプッシュするとブランチが作成されます。それと同時に、ローカルリポジトリの同じ場所にorigin/ブランチ名のようにリモート追跡ブランチが作成されます。これはリモートリポジトリにプッシュするたびに位置が更新されます。
リモート追跡ブランチの一覧を見るにはgit branch -rを使用します。
$git branch -r
origin/main
コミットの情報も表示したい際には、-vオプションも追加します。
$git branch -r -v
origin/main ac512ae first commit
ローカルとリモートとの差を確認したい場合はgit diff リモート追跡ブランチ名 ブランチ名で確認できます。
git diff origin/main main
ここで注意したいのが、リモートリポジトリを参照しているわけではなく、あくまでローカルリポジトリにあるコミットを参照しているということです。
33. git clone
このコマンドは他人のリポジトリや、空ではない既に作成されたリモートリポジトリをローカルリポジトリにコピーしたい際に使用するコマンドです。
$git clone リモートリポジトリのURL
また、クローンを行うとリモートリポジトリはoriginという名前のリモートとしてローカルリポジトリから自動的に参照できるようになります。すなわち、git remote add origin ~を自動的に実行してくれます。
34. git fetch
プロジェクト開発において、他のメンバーがローカルリポジトリを更新し、自分のローカルリポジトリとは異なる状態になることは頻繁にあります。そのため、ローカルリポジトリの内容をリモートリポジトリにプッシュする処理をgit fetchで行っています。
$git fetch origin main
ここで注意したいのが、ローカルのmainの位置は変更されず、リモート追跡ブランチorigin/mainのみが変更されます。
35. リモートの変更を反映
上記の34. git fetchで行ったgit fetchでリモートの変更をローカルに継ぎ足ししました。次に行うのはその変更をマージすることです。
git checkout main
git merge --ff--only origin/main
--ff--onlyオプションを追加することで早送りマージのみを指定できます。これにより、ほかのリモート追跡ブランチとのマージをある程度避けることができます。
36. git pull
34.と35.でリモートの変更をローカルに反映するには、フェッチをしてから早送りマージをするという手順を行っていました。これを一度に行ってくれるコマンドがgit pullです。
$git checkout main
$git pull origin main
まとめ
今回の記事では、リモートリポジトリの扱いについてを中心に学習しました。次回は履歴の操作について学習したいと思います。
前回:【勉強用】Gitのコマンドを実際に動かしてみた(④タグ編)
次回:【勉強用】Gitのコマンドを実際に動かしてみた(⑥履歴の操作編)
