2013-01-22 38 views
0

我在本地克隆了一个git repo。我已经提出了一些提交给master分支和而不是推送到远程。与此同时,其他人也加入了遥控大师的行列。现在我想保留我的提交远程回购,但在我最初克隆的提交开始的分支。主要原因是保持我的承诺的历史,但不与主人合并。预先感谢任何有用的想法。git植入分支

回答

5

假设你的遥控器是origin和当地分行是master,你想推到new_branch

git push origin master:new_branch 
+0

哇,超级!这是否通过名称new_branch创建了新的分支,并且在我最初做了我的克隆的时候呢?如果是这样,当我从远程接下来的时候,它会把我的新分支在整个回购仓库放在正确的地方? – user1487178

+1

如果'new_branch'尚不存在,它将被创建。你的'master'的当前状态将被推送到'new_branch',所以提交树将保持原样。如果你想在不合并你的提交的情况下拉取当前'origin/master',你可以运行'git fetch origin','git reset --hard origin/master'(在'master'上),然后'git pull' 。确保你在这之前成功地推送了'new_branch',因为这样会删除你的所有提交,只把它们留在'new_branch'中。如果您想合并或重新提交您的提交,请跳过重置。 – cjc343

1

cjc343的答案,而技术上是正确的,不完整的感觉对我来说。我会建议为你的工作做一个本地分支,然后推动它。这种方式,主人可以追踪出身/主人,相信我,当你这样做的时候,生活会更容易。

假设你在HEAD,和你的主人仍然超出了你最初的克隆点多次提交...

git checkout -b new_branch 
git push origin new_branch 
git checkout master 
git reset --hard origin/master 

这1)使得新的本地分支,2)它推到远程存储库,3)切换到主人,4)重设主人到起点/主人,这样你就可以再次轻松地拉他人的工作。