2016-09-08 27 views
4

私はpullrequestの基礎となるリモートブランチを持っています。gitを使ってリモートブランチを別のローカルブランチで上書きする方法

私は主に別のブランチで作業しましたが、今は古いブランチを置き換えるはずです。

私はgit push remote oldBranch -fを実行しようとしましたが、最新のローカルoldBranchを現在のブランチではなくgitサーバーにプッシュします。

リモートブランチをローカルブランチに置き換えるにはどうすればよいですか?

EDIT: 誰が興味を持っている場合、これは私が仕事にこれを得た方法である:

git checkout oldBranch 
git branch -m 'oldBranchToBeReplaced' 
git checkout newBranch 
git branch -m oldBranch 
git push myrepo oldBranch -f 

答えて

20

あなたはGitのプッシュのためlocal-name:remote-name構文を使用することができます。

git push origin newBranch:oldBranch 

これはnewBranchをプッシュしますが、起源に名前oldBranchを使用します。

oldBranchはおそらくすでに存在しているので、あなたはそれを強制する必要があります。

git push origin +newBranch:oldBranch 

(私は+代わりの-fを好むが、-fは、あまりにも、動作します)

をリモートでブランチを削除するにはサイドの "空の枝"を押してください。

git push origin :deleteMe 
+2

+1という名前に変更してください。サイドノート: '+'と '--force'の唯一の違いは、同時に複数のブランチをプッシュする場合です。 '-f'はすべてのブランチを強制しますが、' + 'はそれが添付されているrefspecだけを強制するので、' + 'は一般的に良い習慣ですが、1つのブランチを押すだけでは違いはなく、ローカルブランチ名が指定されていないデフォルトプッシュで –

0

から:https://deltacloud.apache.org/send-pull-request.html

$ git checkout -b my branch 
    Coding your changes 
$ git commit -m "Commit message" 

あなたの仕事を押します元のレポを更新する これにより、マージの競合やパッチ適用の問題を避けることができます。あなたのフォークへ

$ git checkout master 
$ git pull 

プッシュ。

$ git checkout my_work_topic 
$ git rebase -i master (Tip: You can rename/squash commits at this point) 
$ git push origin my_work_topic 

発行プルリクエスト

移動たとえば、あなたのフォークのGithubリポジトリ へ:あなた:https://github.com/yourユーザー名/ deltacloud-core.git プル要求タブ (ヒントをクリックしてくださいハブを使ってこのステップを自動化することができます) プルリクエストの使用の詳細については、以下を参照してください。公式GitHubヘルプFor Using Pull Request

+2

ありがとうございました。しかし、私はコーディングを行う必要はありません、私はちょうど既存のものとブランチを交換する必要があります –

+0

あなたはちょうどチェックアウトを行う - b "YourBranchName"とあなたはそのブランチで作業...そして、マスターに戻るチェックアウトマスタ – Tschallacka

+2

が、私はその支店で働く必要はありません。私は支店とその歴史を別の支店に完全に置き換える必要があります。 –

関連する問題