2017-01-11 4 views
2

を変更せずにgitのブランチを作成します。私はちょうど新しいリポジトリを作成し、リモートの追加作業コピー

git init 
git remote add foo something 

今私はgitのは、最新のfoo/masterのコミットになりたいです。通常、これはちょうど:

git checkout master 

最近ではfoo/masterを使用するのに十分なだけです。

私はすでに自分の作業コピーにファイルがあり、私はそれらを変更したくありません。私はgit diffに私の変更を表示したい、私は地元の状態をコミットし、それをfooにプッシュしたい。

背景:ローカルステートは、Github PagesにプッシュされるWebサイトです。

答えて

1

あなただけの(既存のリポジトリを-ing initを再ではなく)新しいリポジトリにgit initを行っている、とまだgit commitを実行していない場合、あなたは胎児ブランチに現在ある(通常master -as-未分枝)。つまり、HEADにはという名前のmasterが含まれていますが、ブランチの名前はmasterではありません。

さらにgit addコマンドを実行していない場合、インデックスは現在で、空の場合はです。あなたはのように持っているでしょう

状態は作業ツリーの内容を変更せず、foo/masterとしてコミット同じに名前masterポイントを持つことです。しかし、最初にリモートfooからすべてのコミットを取得する必要があります。

$ git fetch foo 

今、あなたはブランチ自体を作成することができます:あなたはmaster -itにすでにいるので

$ git branch master foo/master 

を単に「胎児」でした - 現在はmasterに、にはコミットがfoo/masterとなっています。

インデックスがまだ空ですので、git statusは、作業ツリー内のすべてのファイルが追跡されていないファイルとして、HEADコミットからすべてのファイルを削除したものとして表示します。あなたが現在からあなたのインデックスがコミット移入したい場合は、ここで行うことができます。

$ git read-tree HEAD 

、その後git reset様々なファイルは、それらを復元します。そうでない場合は、単に作業ツリーを使用する場合はgit add .と入力します(ただし、.gitignoreを最初に設定することをお勧めします)。

+0

私は 'read-tree'については決して考えなかったでしょう。ありがとう! – qznc

関連する問題