非常に詳細な図による説明: コード ウェアハウスが複数のプロジェクトを管理する方法と、コードの相互作用はコード ウェアハウスに影響を与えません。孤立したブランチの使用

記事の下部には、テクノロジーを愛する Xiao Zheng という個人の公開アカウントがあります。主に開発知識の共有を行っておりますので、ご興味がございましたらご注目ください。なぜ共有するのでしょうか? 踏まれた穴を他の人が踏む必要はなく、一人で繰り返しプレイすることで記憶を深めることもできます。私利他、いわゆるwin-winの状況。

序文

コード ウェアハウスを使用して複数のプロジェクトを同時に管理するにはどうすればよいですか? 以前に個人プロジェクトを作成したときは、コードのセットを管理するのがコード ウェアハウスであったため、プロジェクトが増加するにつれて、コード ウェアハウスの数も増えていきました。フロントエンドとバックエンドが分離されているプロジェクトの場合、フロントエンド用のウェアハウスとバックエンドコード用のウェアハウスが存在し、管理が非常に不便です。以前、コードウェアハウスで複数のプロジェクトを管理するという記事を書きましたが、その管理方法には大きな欠点があり、コードを提出する際に、すべてのプロジェクトのコードが履歴行に提出されてしまいます。各プロジェクトを個別に管理するのではなく

この記事ではこの問題を完全に解決します。インターネットで多くの方法を調べました。あまり詳しくない感じです。ここでは具体的な方法を紹介するだけでなく、実際のコードで検証していきます。そして、コードを実際に適用する際に発生する可能性のある問題。

ここでは GitHub を例に挙げます

前提

今日の主人公:孤児について説明します

パラメータ --orphan を使用します。このパラメータには 2 つの主な機能があります。1 つは現在のブランチのすべてのファイルをコピーすること、もう 1 つは親ノードを持たないことです。これは、完全に独立したバックグラウンドとクリーンなブランチとして理解できます。背景

git checkout --orphan の主な目的は、新しいリポジトリ上に git init のような状態でブランチを作成することです。

この機能がなければ、すべての git ブランチに共通の祖先があり、それが最初のコミットになります。これは非常に一般的な状況ですが、決して唯一の状況ではありません。たとえば、git では複数の独立したプロジェクトを異なるブランチとして持つことができます。単一のリポジトリで追跡します。

1. コードウェアハウスを作成する

コード ウェアハウスの作成方法がわからない場合は、私が以前に書いたブログを読んでください:
この記事では、Github でウェアハウスを作成する方法を説明しています。

作成されたコードリポジトリ
ここに画像の説明を挿入

2. 使用方法

2.1 プロジェクトをローカルにクローン作成する

ローカル プロジェクトとリモート プロジェクトを使用して演習を作成します。また、他の方法で演習を作成することもできます。ここでは、プロジェクトをローカルに直接クローンする簡単な方法を示します。

まずプロジェクトのアドレスをコピーします
ここに画像の説明を挿入

プロジェクトのクローンをローカルの場所に作成します

git clone 项目地址

ここに画像の説明を挿入

2.2 孤立したブランチを作成する

オンデマンドで作成されるため、ここではプロジェクトのバックエンド コード、マーチャント フロントエンド、顧客フロントエンドを個別に保存する 3 つのブランチを作成する必要があります。コードが 3 セットあるので、3 つのブランチを作成します。

一般に、孤立ブランチを単純に使用するには、次のコマンドがあります。

# 1.创建orphan分支(注意创建了分支必须提交文件到该分支下,否则其实没有创建成功)
git checkout --orphan 分支名
# 2.提交到orphan分支下
git add .
git commit -m"desc"
# 提交三步曲只有这步不一样,需要指定分支
git push origin 分支名(确保一致)
# 3.切换分支,比如切换到golang分支(切换了文件会发生变化,只会显示该分支下的文件)
git checkout golang

ここではブランチを作成するプロセスを示します。これに焦点を当てましょう。ブランチを作成したが、そのブランチをリモートに送信しなかった場合です。コマンドを使用してgit branchブランチを表示すると、作成したブランチは表示されません。ローカルでブランチを作成する前に送信する必要があります。送信後、作成されたブランチがリモートに表示されます。
使用されるコマンドの一部
1. ブランチの表示: git branch. 2. ブランチの切り替え: git checkout 分支名. 3. ファイル一時ストレージの追加: git add .. 4. 情報の説明の送信: git commit -m '提交信息描述'. 5. リモートへの送信git push origin 分支名.

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

2.3 遠隔倉庫支店の状況

ここに画像の説明を挿入

2.4 プロジェクトコードを対応するブランチに提出する

これは私が書いたプロジェクト コードです。以前は 3 つのコード ウェアハウスに別々に保管されていたため、保守が困難でした。ここで同じコード ウェアハウスに置きます。次に、3 つのプロジェクトを対応するコード ブランチに配置します。
ここに画像の説明を挿入

作成したバックエンド コード ブランチにバックエンド コードのセットを送信して保存します。プロセスは比較的単純です。このブランチに切り替えた後、このブランチに送信するコードを追加し、このブランチにコミットしてプッシュします。具体的なプロセスは次のとおりです。

ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入

他の支店コードは変更されません
ここに画像の説明を挿入

別のコードセットをコードウェアハウスに送信する

別のコード セットを送信してブランチを切り替えます。git checkout 分支名具体
的な送信プロセスは以下の通りですが、git 可視化ツールを利用してコードをリモートブランチに送信するだけで操作することもできます。

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

2.5 異なるブランチは相互に影響を与えません

ここに画像の説明を挿入
ここに画像の説明を挿入

3. 発生した問題

3.1 ブランチを切り替えた後、他のコードが表示されなくなりますか?

コードを表示しようと興奮してエディタを開いたところ、現在のブランチの下にあるコードのみが表示されていることがわかりました。他のブランチのコードは表示されません。これは深刻な問題を引き起こします。フロントエンドとバックエンドを別々に開発する場合、フロントエンドとバックエンドの両方のプロジェクトを開く必要があります。現在は 1 つしか開くことができません。具体的な解決策については 3.2 を参照してください。

ここに画像の説明を挿入

支店切り替え後の状況
ここに画像の説明を挿入

3.2 見えないブランチの問題を解決する (特定のブランチの下にコードを複製する)

また、プロジェクトのクローンを別の場所に作成し、このブランチの下にコードを個別にプルします。これで問題は解決します。同時にそれも達成されました。プロジェクト全体を複製せずに、特定のブランチのコードを個別に複製できます。このようにして、コード リポジトリで、複数のプロジェクトの 1 つを複製して管理できます。

具体的なプロセスの
ステップ:
1. プロジェクトをローカルにクローン作成します (場所を変更します)
2. 指定されたブランチ コードをプルします

ブランチはリモートでオープンされているので、ローカルにプルダウンするだけです

git checkout -b feature-branch origin/feature-branch    //检出远程的feature-branch分支到本地

ここに画像の説明を挿入
ローカルにはブランチが2つしかないので、もちろん他のブランチコードをこのディレクトリにプルすることもできますが、以前と同じ状況になってしまいます。現在のブランチのコードのみが表示され、他のコードは表示されません。現時点ではこの方法しか思いつきませんが、良い方法があればコメント欄で共有していただければ幸いです。

ここに画像の説明を挿入

このようにすると、さまざまなブランチの下でコードを確認できるので、自分で変更するのに便利です。

フロントエンドプロジェクトのコード
ここに画像の説明を挿入

バックエンドプロジェクトコード
ここに画像の説明を挿入

3.3 アイデアファイルが変更されるが、ファイルの色は変更されない

バージョン管理の主な役割は、プロジェクト コードに加えられた変更を確認しやすくすることです。その結果、ここでちょっとした問題が発生し、コードファイルを修正してもファイルの色が変化しませんでした。プロジェクトがすでにバージョン管理下にあったためかどうかはわかりません。

解決策: バージョン管理のアドレスをリロードします。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

4. ブランチコードの提出ステータスを表示する

ここでのバックエンドの履歴には、現在のプロジェクトのコミット ステータスのみが表示されます。他のブランチからのコミットは気にしません。
ここに画像の説明を挿入

Vscode プラグインの使用をより明確に確認できます。ここでは、すべてのブランチのコード送信ステータスを示します。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

5. リモート倉庫の提出ステータスを表示する

ここに画像の説明を挿入
ここに画像の説明を挿入

6. 異なる支店コードは相互に影響を与えることなく変更されます。

単一プロジェクトの開発と同様に、他のプロジェクト コード変更の影響を考慮する必要はありません。
ここに画像の説明を挿入

これは、1 つのコード ウェアハウスで複数のプロジェクトを管理する場合の大きな欠点です。期限内に提出されなかった場合、プロジェクトのコードの 1 つが変更されます。他のプロジェクトがコードを提出するとき、この未提出の部分も提出することになります。また、ファイル変更の影響も非常に厄介です。開発にとって非常に悪い。

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_43304253/article/details/132031248