いいねかストックされたものから更新。
いいね貰ったので確認して追記(4/02)
分かった事を追記(24/4/7)
よく分からんという事が多発したので整理しておく。
困ったときにChatGPTに聞いたらかなり詳細に教えてくれたが、なるべく存在するドキュメントか実際に試した手順に準拠する。
注意点
Localリポジトリはディスクスペース内(PC/端末内)、リモートリポジトリはGitHub内。
無暗にPushやフェッチを行うとGitHub内のCodeが意図せず上書きされてしまったり、Localリポジトリの作業内容が虚無に還ったりする。
差し戻しも可能らしいがまだ再現出来てない。
こっちの方が詳しい
ipentec.com
https://www.ipentec.com/document/visual-studio-2019-git-push-to-remote-repository
Comitする
「全てをコミット(i)」することでコメント付きで変更内容をgithubに送信出来る。
pullとpush
Comitを反映させるには事前に 「git」 → 「設定」 からPushを有効にする -force with-lease(E)
にチェックを入れる 。
自作アプリのgitで検証。ComitやPullでの変更が反映された。
ここから
Pull:リモートリポジトリに変更がないかを確認する。
また、Pushする前に必ずPullする事がMicroSoftのドキュメントで推奨されている。Mergeの競合を防ぐことが出来るとのこと。
push:ローカルリポジトリでComitしたものを反映させる
これで実際のGitページに反映される(23/11/4 検証)
Visual Studio からリモート ブランチにプッシュする
Visual Studio でバージョン コントロールに Git のフェッチ、プル、プッシュ、同期を使用する
※公式のドキュメント内容が古くてVisualStudio2022のものが反映されてない模様。
フェッチ(Fetch)
※公式ドキュメントから転載
プッシュする前にフェッチしてプルすることが重要
ローカルの変更に組み込む必要があるリモート コミットがあるかどうかが確認される。 あることが確認された場合は、最初にプルしてアップストリーム マージの競合を防ぐ。
Brunchを作成
「ブランチのチェックアウト」でそのブランチに移動する。
これでMasterのCodeを保てる。
Brunch先へ変更内容をPushする
理由は分からないがそのままpushしても上手くいかない。
PullしてからでないとPushできないらしい。公式ドキュメントに書いてある。
ここからPushの代わりにComitを行う。
変更されたかを確認するにはgit log
コマンドを打てばよい
このあとPull→Pushすると変更内容がリモートリポジトリに反映されるこれが正式な手順。
Git Cloneで実際にダウンロードして検証したらComitだけでも反映はされてたけど正式な手順を推奨しておく。
履歴を出す
git →「コマンドプロンプトで開く」
git log
日付は上から降順
Header情報?
HEAD -> BPMatching_Brunch
のようにComit先が分かる。
付いてないものは前回のComitのものである。
差し戻しのときに364b....のようなハッシュ値を使用する。
Brunchを管理する
ここからでもPushが可能だがコメントが付けられるComitの方がいい。内容の確認がしやすい。
Brunchを変更するにはコンテキストメニューからCheckOutを押せばよい。Brunchの削除も出来る。
conflict(競合)の対処
作業を進めているとプッシュしてもconflictを起こし、反映させる事が出来ないという事がある。
conflictは同じコード行に対し複数の異なる変更が行われた場合に起こる。
以下はChatGPT出力
同じコード行に対する異なる変更が複数のブランチで行われた場合。
一方のブランチで削除されたファイルが、もう一方のブランチで変更されている場合。
ファイル名やフォルダーの変更が異なるブランチで異なる方法で行われている場合。
実際に単独アプリ開発で起こしてしまった事があるので、対処方法を紹介する。
conflictの再現
1.ローカルリポジトリ(Visual Studio)でファイルを編集し、変更をコミット。
2.Visual Studio内でエラーが解消せず、原因不明なので以前のVersionにチェックアウトして書き戻しをした。
3.以前のVersionにチェックアウトに対して変更を行い、コミットした
競合が発生するとコミット欄に以下の表示が出る
競合を解決するには入力方向の取得か現在の取得かのいずれかを選択すればよい
今回は入力方向を取得した。
いいね、ストックが励みになります!