2017-03-14 18 views
0

"release"という名前のブランチがあり、サブディレクトリ "1.0"と "1.1"が含まれています。私はこれら2つのサブディレクトリを "リリース"レベルでブランチにし、リリースディレクトリを完全に削除したいと思います。これは古いsvnレポをgit repoに変換する副作用でした(私の経験では少し経験が足りません)。これを行う簡単な方法はありますか?同様に多分地元のレポでレベルを1.0と1.1のdirsを上に移動し、次にような何か:私はそれがすべてのファイル以来の歴史を保存していないので、それが最善の解決策だとは思わないGitブランチのサブディレクトリを新しいブランチに変換する

git checkout -b 1.1 
git push origin 1.1 

を再チェックインする必要があります。プッシュを変更する履歴が含まれていない方がよいでしょうか?

答えて

1

リリースディレクトリを削除したいので、履歴に追加しないでください。したがって、最も簡単な方法は、リリースブランチをチェックアウトし、rel-1.1ブランチをチェックアウトし、rel-1.1がコミットされたことをリセットし、dir(check What's the purpose of git-mv?)rinceを移動してrel-2.2を繰り返し、リリースブランチを削除します。

しかし、リポジトリ全体の履歴を書き換えることができる場合は、git filter branchコマンドをチェックしてください。たとえば、すべての履歴を書き直してトップレベルのディレクトリを移動する方法については、How can I move a directory in a Git repo for all commits?をご覧ください。したがって、フィルタブランチを使用して、2つのディレクトリが常にトップレベルにあるので、リリースブランチの履歴を書き換えることができます(あなたがコースを開始する前にrel-1.1、1.2ブランチをチェックアウトする必要があります)。

関連する問題