2011-07-15 32 views
0

私は "dev" gitブランチを持っています。私はローカルでいくつかのコードを変更しました。私はリモートの "dev"ブランチにコミットしていません。変更の途中であるので、同じリモートブランチにローカル変更をコミットしたくありません。私は "over_here"と呼ばれる新しいブランチを作成し、そこで変更をコミットしたいと思います。Github - 既存のローカルブランチの新しいリモートブランチへの変更をコミットする

これはどのように達成できますか?上だった:あなたが戻っorigin/dev状態にあなたのdevブランチをリセットする必要がある場合にも

git checkout dev 
git reset --hard origin/dev 

UPDATEが実行される可能性があり応じ

git checkout -b over_here 
git push origin over_here 

:あなたのリモートは、標準のgit名originを持っていると仮定すると

+0

新しいブランチにコミットするか、ローカルのコミットを新しいブランチにプッシュしますか?違いは、新しいブランチに移動したい複数のコミットか、現在の変更だけですか? – Affian

+0

新しいブランチをコミットします。私はローカルのdevブランチでコミットを全くしていません(現在の変更のみ)。 – keruilin

答えて

5

いくつかの変更がコミットされたと仮定して書かれています。まだここ

git checkout -b over_here 

今すぐあなたの変更はできますが、新しく作成したブランチにしている: - あなたはローカルdevブランチには何も犯していないコメントで語ったとして、あなたは今、新しいブランチをチェックアウトする必要があります。したがって、ローカルの変更をコミットする準備が整いました。

git commit -m 'my local changes to over_here branch' 

これらの変更はローカルのリポジトリのみに適用されます。リモートリポジトリ(おそらくgithubの)にそれらをプッシュしたい場合 - あなたは実行してください:

git push origin over_here 

それはリモートリポジトリに新しいブランチを作成し、そこに変更をコミットします。

+0

無知の恩赦はありますが、私のリモコンに標準のgit名の由来があるかどうかはどうすればわかりますか?そして起源は何を参照していますか? – keruilin

+0

最初のオプションを使用し、ローカルブランチを維持したい場合は、pushコマンドを省略してください。 – Affian

+0

'git remote'は設定したリモートのリストを表示します。 'git remote show _remote-name_'は、最初のコマンドから取得した名前の1つと等しくなければならない' _remote-name_'という名前のリモートに関する詳細を表示します。 –

0

ブランチfooをブランチにする場合は、のbargit push origin foo:barとすることができます。 git push origin fooは、あなたがgit push --set-upstream origin foo:barを使用している場合は、リモートおよびブランチ名を指定しなくても、その枝にだけgit pushgit pullを使用することができますgit push origin foo:foo

の省略形です。

関連する問題