私はブランチ A を持っており、それに非常に重要な変更のリストを作成したいと考えています。これらの変更の最終結果は、ディレクトリ B に既に存在します。これも新しい作業コピーにしたいと考えています。要するに、「このディレクトリを自分のブランチの最新の作業コピーにする」だけです。
これを達成するために私が現在認識している2つの可能性があります:
- A を一時ディレクトリ C にチェックアウトし、「.git」以外のすべてを削除し、ディレクトリ B の内容を C にコピーしてから、ディレクトリ C から追加/コミット/プッシュします。最後に、C の内容全体を B に戻します。
- チェックアウトなしでリポジトリを一時ディレクトリ C にクローンし、「.git」ディレクトリを C から B に移動します。B 内から追加/コミット/プッシュします。
これらのソリューションの両方の問題は、恐ろしく扱いにくいだけでなく、ディレクトリ B と C の両方にディスク容量が必要になることです。オプション 1 では、ファイルのシャッフルがもう少し必要になります。したがって、現在、これに対する私の最善の解決策はオプション 2 です。詳細な手順を以下に示します。
「reset」または「symbolic-ref」を使用してこれを行うより良い方法があると思います。成功せずにさまざまなオプションを試しました。
mkdir /tmp/git_output
cd /tmp/git_output
git init
git remote add origin /path_or_url_to/git/repo.git
git fetch
git checkout name_of_branch
mv .git /path/to/new/src/
cd /path/to/new/src/
git commit -a
git push
rm -rf /tmp/git_output
助けてくれてありがとう。