ブランチfoo
を作成したいと思います(チェックアウトしました)。origin/bar
と同じコミットで開始しますが、現在はorigin/bar
がチェックアウトされていません。これを行う1つのライナーはありますか?Gitはトラッキングのない別のブランチからブランチを開始します
git branch foo origin/bar
git checkout foo
をそして、あなたはとしてonelineを主張する場合:
ブランチfoo
を作成したいと思います(チェックアウトしました)。origin/bar
と同じコミットで開始しますが、現在はorigin/bar
がチェックアウトされていません。これを行う1つのライナーはありますか?Gitはトラッキングのない別のブランチからブランチを開始します
git branch foo origin/bar
git checkout foo
をそして、あなたはとしてonelineを主張する場合:
あなたにはそれを行うことができます単一コマンド:git checkout
は、git branch
の--no-track
オプションを直接指定することができます。
git checkout -b foo --no-track origin/bar
それはあなたがあなたの新しいブランチがリモートorigin/bar
を追跡するかどうかによって決まります。リモートを追跡しない場合は
git checkout -b foo origin/bar
:リモートを追跡するために
git checkout -b foo --no-track origin/bar
(後でいつでも追跡関係を追加することができます。)
は、Gitは、このようなブランチを作成するためのフラグがあります:
https://git-scm.com/docs/git-checkout/
--orphan
は、という名前の新しい孤児のブランチを、作成から開始し、それに切り替えます。この新しいブランチで行われる最初のコミットには親がなく、それは他のすべてのブランチとコミットから完全に切り離された新しいヒストリーのルートになります。インデックスと作業ツリーは、あらかじめ
git checkout <start_point>
を実行したかのように調整されています。これにより、
git commit -a
を簡単に実行してルートコミットを実行するのと同じような一連のパスを記録する新しい履歴を開始することができます。これは、完全な履歴を表示せずにコミットからツリーをパブリッシュする場合に便利です。現在のツリーが
clean
であるが、完全な履歴には独自のコードやその他のコードが含まれているプロジェクトのオープンソースブランチを公開することができます。完全に異なるパスセットを記録する切断履歴を開始する場合は、上位レベルから
git rm -rf .
を実行して、孤立したブランチを作成した直後にインデックスと作業ツリーをクリアする必要があります作業ツリーのその後、新しいファイルを準備したり、作業ツリーを再作成したり、他の場所からコピーしたり、タールボールを抽出したりする準備が整います。
これは、OPが求めているようには思われません。私は歴史を切り離すという言葉には言及していません。彼らは最初にそれをチェックすることを気にせずに、既存のブランチからブランチしたいだけです。 –
私は彼が歴史のないブランチを望んでいることを最初に理解しました:-) – CodeWizard
技術的には「origin/bar」はチェックアウトできません(通常、ローカル)ブランチではありません。リモート追跡ブランチが指すコミットをチェックアウトすることができます。しかし、一般的にあなたは '--no-track'をhvdとして既に回答しています。 – torek