質問

様々な理由(主にコードレビュー)のために私はかなり頻繁に他の支店に、現在の開発ブランチから切り替える必要があります。

現在、私はどちらか「Gitのスタッシュ」コミットされていない変更を棚上げにする、チェックアウト他の枝を使用して、再び切り替えて行う「Gitのスタッシュ適用する」

しかし、時々私は追跡されないが、いくつか新しく追加されたファイルを、持っていると思います。残念ながら、スタッシュは、それらに影響を与えません。この場合、私は、インデックスとスタッシュに追加する必要があると思います。

私は何のためにここで見ていると、私は、好ましくは、インデックスにファイルの追加を避けて、枝を切り替えるための行動の最小セットを実行する必要があると思いワークフローです。

役に立ちましたか?

解決

あなたが欲しいブランチに別のディレクトリおよびデフォルトのレポのクローンを作成することができます:

# assume your original repo is in myproj
$ git clone myproj myproj_clone --branch my_branch
<のp>あなたがmyproj_cloneフォルダに移動した場合、それはあなたのブランチになります。

$ cd myproj_clone
$ git branch
* my_branch

他のヒント

あなたはクローン上のリポジトリとレビュー/仕事のクローンを作成することができます。作業が完了したときにクローンを削除します。あなたはブランチ/クローンに変更を加えることが起こるならば、あなたはそれらを押し戻すことができます。私は地元のクローンが安いと思います。そして、それがなかった場合でも、ディスクスペースがあなたの時間よりもまだ安いです。

私は、クローニングが適切なソリューションであることをわからないんだけど、2つの答えは、それが脳の上にあることを提案しているので、私はそのテーマに修正を提供していますので、。クローニングは安くないかもしれません。ディスク・スペースの面では、それは関係ないのですが、それ自体が作るクローンは数秒かかり、それは不必要な操作に無駄にあまりにも多くの時間です。別の方法として、あなたは単に古いgitの作業ディレクトリを使用して、新しい作業ディレクトリを作成することができます。あなたの現在の作業ディレクトリは、(変更と非段階的なファイルとの)「A」である場合、すなわち、試してみてください。

$ mkdir ../b
$ cd ../b
$ echo 'gitdir: ../a/.git' > .git
$ git checkout -f foo

これでBは、分岐FOOに、効果的のクローンである、あなたが一緒にプレイするために、2つの作業ディレクトリを持っています。あなたはDIR bを作業中のブランチfooの上に必要なもの、それからに戻って、あなたが去ったときにいたブランチをチェックアウトしてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top