Gitを使う条件
初めにgitをインストールし、githubアカウントに登録しておく。使うエディタは、vscodeでsourcetreeを用いて操作する。
git initとは?
まず、bashで対象のディレクトリまで移動する。
今回はユーザーディレクトリ直下のgitstudyディレクトリ内部をgitの管理下と置くことにする。
$ cd ~/gitstudy/
としgitstudyに移動する。次に以下のコマンド
$ git init
を実行すると、gitstudy配下がgitの管理対象となる。
クローンするとは?
- クローンとは、リモートリポジトリの内容を自分の作業領域のローカル環境に複製することである。
github上にある、クローンしたいリポジトリのURLをコピーし、sourcetree側でcloneするを押しクローンするURLと保存先のディレクトリを指定する。
ここで注意が必要でディレクトリは空のディレクトリを指定するようにする。
これでローカルにクローンができる。
変更を加えコミットする
- コミットとは、追加したファイルをgitに登録するための操作である。
先ほどクローンしたローカルリポジトリを編集し、名前をつけてコミットする。
フェッチ&プル&マージ
- フェッチは、最新の履歴の更新を取得するために使う。
- プルは、最新の更新の取得とマージを一度に行う。
- マージとは、最新のリモートリポジトリを自分のリポジトリに取り込み更新することである。
履歴の更新だけしたい時はフェッチを、履歴の更新とマージを同時に行い時は、プルを行う。
プッシュ
- ローカルリポジトリの内容をリモートリポジトリに反映し、更新することをプッシュと言う。
ブランチ
- ブランチとは、最初のコミットで作成される主要なmasterブランチがあり、プロジェクトの開発状況においてその都度新しいブランチが作成される。
各ブランチをmasterブランチにマージすることで、開発を進めていくことになる
コンフリクトって何?
- コンフリクトとは、複数の開発者が、複数のブランチで作業し、それぞれ同時期にmasterブランチにマージしたとき発生する問題である。
例としてはgit-Aブランチで以下のコードをコミットし、masterブランチにマージする。
console.log('testA');
同様にgit-Bブランチでも以下のコードをコミットし、masterブランチにマージする。
console.log('testB')
この時先にマージしたgit-Aブランチはマージできるが、後にマージしたgit-Bブランチは、git-Aブランチのマージがあるためgitがどちらを取ればいいか分からずコンフリクトが起きる。
コンフリクトの解消法
コンフリクトを解消する場合、手動でコンフリクトを解決しなければならない。
git-Bブランチの内容を正とした場合、
console.log('testB')
としgit-Aの内容を手動で削除しなければならない。
以上がgitについてのまとめです。分かりにくい部分も多々あったと思いますがありがとうございました。