torutkのブログ読者になるtorutkのブログソフトウェア・エンジニアのブログ2018-04-30Gitリポジトリに空のブランチを作るGit動機Githubに、Redmineの用語集プラグイン(redmine_glossary)をフォークして修正を加えたものを置いています。Railsのバージョンが4.2から5.1に更新されます。4以前のDeprecatedとなり削除された機能を利用しているコードは修正を余儀なくされます。そこで、redmine_glossaryのコードを再構築(リファクタリング程度の修正ではなく)しようと思います。再構築にあたっては、いったん既存コードは空にして、小さいコードから出発していきたいところです。Gitリポジトリは既存のものを使い続けたいとします*1。ふつうにgitのブランチを作ると、一番遡っても初期コミットの状態のブランチ(初期コミットで追加されたファイル群が存在する)となってしまいます。最初が空ならよかったのですが、フォークしてきたリポジトリは初期コミットがglossary_pluginのとあるバージョンのもの全体となっています。そこで、空の新規ブランチを作れないか?というのが動機です。空]でぐぐってみたところ、意外とたくさん関連する情報が出てきました。トップに出てきたブログはredmineプラグイン作者*2でもある@akiko-pusuさんのものでした!gitの空ブランチを作るorphanブランチを作ると、空のブランチとして利用できます。orphanブランチredmine_glossaryプラグインのgitクローンを生成します。--orphanオプションを指定してチェックアウトします。ここではブランチ名をreconstructとします。reconstructredmine_glossary$この時点で作業ツリーにはmasterのファイル群がそのまま存在します。作業ツリーの状態を確認します。:全てのファイルが新規扱いとなっており、コミットは1件もない状態ということが分かります。空のブランチで開始したいので、master群のファイルがステージングされているのが邪魔です。作業ツリーに残っていても面倒です。.git/redmine_glossary$これで空のブランチができました。origin/msaterremotes/origin/masterブランチ一覧を見ると、ophanブランチが存在していません。なにか1つコミットしないとダメなようです。README.rdocをコミットします。reconstructブランチに登場しました。これをリモートにプッシュします。:リモートのブランチをクローンglossaryプラグインをゼロから開発します。4.0開発版をチェックアウトし、pluginsディレクトリの下で先ほど作成したreconstructブランチをクローンします。:README.rdocファイルしかないので、プラグインの雛形を上書き生成します。:README.rdocが存在するため、プラグインの雛形生成時に衝突が検出されます。nで雛形では上書きせずにスキップさせます。*1:「新しいリポジトリを作ればいいのに」という意見があることは想像できます。ここではリポジトリを増やしたくない、既存リポジトリの再構築なので分けたくないというところです。9はてなブログをはじめよう!torutkさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。