gitでは、無関係なブランチをリポジトリに導入する簡単な方法はありますか?
今日はgitの問題を抱えている友人を助けている間に、masterブランチから完全に分離する必要があるブランチを紹介する必要がありました。このブランチの内容は、ブランチで開発されたものとは起源が実際には異なりましたが、後でブランチにmasterマージされる予定masterです。 John WiegleyのGitを下から上から読んだとき、ブランチが基本的に特定の規則に従うコミットのラベルであり、コミットがファイルのツリーと、オプションで親コミットにどのように関連付けられているかを思い出しました。gitのplumbを使用して、既存のリポジトリーに親なしのコミットを作成しました。 したがって、インデックス内のすべてのファイルを削除しました... $ git rm -rf . ... tarballからディレクトリとファイルを抽出し、それらをインデックスに追加しました... $ git add . ...そしてツリーオブジェクトを作成しました... $ git write-tree (git-write-tree作成されたツリーオブジェクトのsha1sumを教えてくれました。) 次に、親のコミットを指定せずにツリーをコミットしました... $ echo "Imported project foo" | git commit-tree $TREE (git-commit-tree作成されたコミットオブジェクトのsha1sumを教えてくれました。) ...そして、新しく作成したコミットを指す新しいブランチを作成しました。 $ git update-ref refs/heads/other-branch $COMMIT 最後に、masterブランチに戻ってそこで作業を続けました。 $ git checkout -f master これは計画どおりに機能したようです。しかし、これは明らかにgitを使い始めたばかりの人に穏やかに言えば、私がお勧めする種類の手順ではありません。これまでにリポジトリで発生したすべてのこととはまったく無関係の新しいブランチを作成する簡単な方法はありますか?