【Git】競合(コンフリクト)実験から学ぶ
Git(バージョン管理ツール)を使って複数人で共同でプログラムを作成する場合、同じコードを意図せず同時に変更してしまうことがあります
これは、Gitでは想定済みで特に問題になることはありません
また、そのためのツールや処理の手順で解決出来ます
慣れてくればいいので、練習していきましょう
サンプル
最小コードで確認します
1つのファイルで、1行のConsole.WriteLineメソッドを作成します
競合サンプルなので、複数人が同時にこのファイルを更新した事例で考えてみましょう
開発者数
2人
開発者1
Work1というブランチを作成して、作業
開発者2
Work2というブランチを作成して、作業
バージョン管理のためのGit手順
GitHub(クラウド)とGitHub Desktopの関係

引用元 サル先生のGit入門
Work1ブランチを作成

Work2ブランチを作成


Work1ブランチでコードを更新
Program.csファイルを変更後、GitHub Desktopでコミット


Work1ブランチをMainブランチにマージ(統合)
GitHub Desktopでプッシュ後にプルリクエストを発行
承認者がWork1ブランチの内容を確認後にマージ(統合)

Work2ブランチでコードを更新
Program.csファイルを変更後、GitHub Desktopでコミット


Work2ブランチをMainブランチにマージ(統合)
Work1での作業と同じファイルを更新しているため、実際はMainにマージ(統合)する場合、どちらを採用すればいいのか選ぶ必要が出てきます

競合(コンフリクト)の解決例
VisualStudio Codeをインストールしておきます
GitHub Desktopでデフォルトの競合対応のツールが含まれています

処理サンプルの動画
Gitの更新状況をビジュアル(イラストのようなもの)で確認

誰かがMargeした場合に自分のブランチに最新のmaster(main)変更を取り込みたい場合
master(main)ブランチに変更します
Margeすぐの状態では、また、ローカルのmaster(main)は、クラウド側の状態が反映されていません
なので、master(main)ブランチに変更後、一度 Fetch

自分のブランチに変更します

ディスカッション
コメント一覧
まだ、コメントがありません