是否可以提交併將更改從一個分支推送到另一個分支。將提交推送到另一個分支
假設我在BRANCH1 COMMITED變化,並希望他們推到BRANCH2。
從BRANCH1,是有效的事:
git push origin **BRANCH2**
,然後復位BRANCH1?
是否可以提交併將更改從一個分支推送到另一個分支。將提交推送到另一個分支
假設我在BRANCH1 COMMITED變化,並希望他們推到BRANCH2。
從BRANCH1,是有效的事:
git push origin **BRANCH2**
,然後復位BRANCH1?
這幾乎可以奏效。
當推到非默認的分支,你需要指定源ref和目標價:
git push origin branch1:branch2
或者
git push <remote> <branch with new changes>:<branch you are pushing to>
當然,雖然它只會在BRANCH2快進時才起作用,或者如果你強制它。正確的語法做這樣的事情是
git push <remote> <source branch>:<dest branch>
對於它如何工作的更詳細請參見上git push man page一個「的Refspec」的說明。另外請注意,強制推送和重置都是「重寫歷史記錄」的操作,除非您完全確定自己知道您在遠程存儲庫和其他方面所做的操作,否則不應該由心灰意懶的人來嘗試擁有相同項目的分支/克隆的人。
謝謝!我只是補充一點,你可以用'git push --force remote local-branch:remote-branch'強制執行。 –
在我來說,我有一個本地提交,其沒有推到origin\master
,但承諾到我的當地master
分支。這個本地提交現在應該被推送到另一個分支。
隨着Git的擴展你可以做這樣的事情:
你也可以在GIT命令行上做到這一點。例如,從David Christensen複製:
我想你會發現
git cherry-pick
+git reset
成爲一個更 更快的工作流程:使用你相同的情況下,以「功能」是與分支的 最頂部承諾是不正確,這將會是很容易做到這一點:
git checkout master
git cherry-pick feature
git checkout feature
git reset --hard HEAD^
節省相當多的工作,而且是
git cherry-pick
目的是要處理的情況。我也會注意到,如果它不是最上面的 提交,這也會工作;你只需要爲這一論證commitish來摘櫻桃, 通過:
git checkout master
git cherry-pick $sha1
git checkout feature
git rebase -i ... # whack the specific commit from the history
'branch1'和'branch2'都需要在遠程?如果你想從本地'branch1'推送到遠程'origin branch2',該怎麼辦? – orad
@orad:不。第一部分實際上只是本地提交的標識符;它甚至不需要成爲分支。 – SLaks
如果我想將一個遠程分支推送到另一個遠程分支,而不先檢出以前的分支,該怎麼辦? – abhisekp