基本的にバージョン管理という概念は、都度の更新の積み重ねというタイムラインをイメージしなければいけない。
このタイムラインが一人で開発していて1本のラインしかない場合はそんなに難しく考える必要はないが、複数人で開発していたり、色々なバージョンを同時に開発している場合などは、その機能通しを結合するタイミングで、コンフリクトが発生するリスクがある。
Gitの優位点
今までのバージョン管理ではこういったコンフリクトは、手作業で修復するというマルチラインに対する考え方があまり無かったのだが、GITは基本的にこのマルチラインを管理するシステムという事を理解しよう。
ただし、発生したコンフリクトは、手作業で修復しなければいけないという点では、これまでとあまり変わらないのだが、仕組みを作るだけでかなりこの手作業が効率化する。
pullする時の注意点
$ git pull %server-host% %branch%
通常はこのようにコマンドを実行するが、実はこの結果では問題が発生する可能性が高いので、以下の様にすることをおすすめする。
$ git pull %server-host% %branch% %new-branch%
new-branchは、pullする時に新しくブランチを作成して元の状態を保持してくれる。
最初のコマンドだと、元の状態を保持せずにいきなり現在のbranchにmergeしてしまうので、
コンフリクトが発生した場合に下に戻して確認したりできるこの方法がオススメである。
※元ブランチ名を考慮して"origin/%new-branch%"とするのが一般的なようだ。
fetchて何?
fetchはpullしてきた元データで一度commitを作ってからmergeしてくれるので、元状態を簡易的に作ってくれるので便利といえば便利であるが、同じブランチ上でのcommit追加なので、複雑なデータ差分の場合にうまくいかなかった事があるので、僕はあまり使ってません。
pullで確実にデータを持ってきたほうが個人的には安心できるんですね。
0 件のコメント:
コメントを投稿