git推送到远程分支

时间:2011-06-08 13:00:40

标签: git version-control git-branch git-push git-remote

民间,

我克隆了一个回购。我通过发出以下命令创建了一个分支来处理某个功能:

git branch fix78

然后我通过

在那个分支上工作

git checkout fix78

我继续向这个当地分行提交。现在我想将其推送到repo,因此我发出了以下命令:

git push origin master:fix78

我从网络浏览器查看了repo,发现在repo上创建了一个名为fix78的新分支。但它没有我的任何承诺。

我在这里做错了什么?这就是我想要实现的目标:

有一个repo(master(SVN术语中的trunk)),现在当我正在处理一个功能时,我想创建一个本地分支,然后我还要检查这个分支到repo(所以其他团队成员可以看到我在做什么),然后我希望我的本地分支与我创建的这个远程分支同步。

任何帮助/反馈都会非常棒。

感谢。

2 个答案:

答案 0 :(得分:61)

git push origin master:fix78将本地主服务器推送到名为fix78的远程分支。您想推送本地分支fix78,它具有相同的语法但没有master:

您可以通过执行git push origin :fix78删除远程分支然后git push origin fix78将本地分支推送到远程仓库来修复它。

答案 1 :(得分:52)

push命令的格式为

git push remote_name source_ref:destination_ref

您需要做的就是纠正错误

git push origin +fix78:fix78

加号表示您不关心该分支可能会丢失历史记录,因为之前的推送是错误的。

备用语法

git push -f origin fix78

如果省略目的地,则暗示它的名称相同。如果跟踪设置到遥控器上的特定分支,则它将转到该分支。删除分支有2种语法,旧的:

git push -f origin :fix78

git push --delete origin fix78

第一个被解读为“push nothing into fix78”,删除它。

一个技巧是,如果指定.作为远程名称,则表示当前的repo为远程名称。这对于更新本地分支非常有用,无需检查它:

git push . origin/master:master

将更新主人而无需结帐主人。

希望这有帮助