版本控制-git push到远程分支

民间,

我已经克隆了一个仓库。 我通过发出以下命令从中创建了一个分支来处理功能:

git push origin master:fix78

然后我在那个分支工作

git push origin master:fix78

我继续向该本地分支机构作出承诺。 现在我想将其推送到仓库中,因此发出了以下命令:

git push origin master:fix78

我从Web浏览器查看了存储库,发现在存储库上创建了一个名为fix78的新分支。 但是它没有我所做的任何承诺。

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

有一个仓库(master(在SVN语言中为trunk)),现在当我使用某个功能时,我想为其创建一个本地分支,然后我也想将该分支签入仓库(以便其他团队使用) 成员可以看到我的工作),然后希望本地分支与我创建的远程分支同步。

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

谢谢。

2个解决方案
61 votes

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

您可以通过以下方法解决此问题:git push origin :fix78删除远程分支,然后git push origin fix78将本地分支推送到远程仓库。

rlc answered 2020-02-11T15:51:06Z
52 votes

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

第一个被读取为“不将任何内容放入fix78”,将其删除。

一种技巧是,如果您将.指定为远程名称,则表示当前存储库为远程名称。 这对于更新本地分支而不用检出它很有用:

git push . origin/master:master

将更新母版,而无需检出母版。

希望这可以帮助

Adam Dymitruk answered 2020-02-11T15:52:06Z
translate from https://stackoverflow.com:/questions/6279082/git-push-to-remote-branch