git推送到远程分支

Rub*_*lto 48 git version-control git-push git-remote git-branch

伙计们,

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

git branch fix78

然后我在那个分支上工作

git checkout fix78

我继续对这个当地分公司做出承诺.现在我想将其推送到repo,因此我发出了以下命令:

git push origin master:fix78

我从Web浏览器查看了repo,发现在repo上创建了一个名为fix78的新分支.但它没有我做过的任何提交.

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

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

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

谢谢.

rlc*_*rlc 61

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

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


Ada*_*ruk 52

push命令的形式为

git push remote_name source_ref:destination_ref
Run Code Online (Sandbox Code Playgroud)

您需要做的就是纠正错误

git push origin +fix78:fix78
Run Code Online (Sandbox Code Playgroud)

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

替代语法是

git push -f origin fix78
Run Code Online (Sandbox Code Playgroud)

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

git push -f origin :fix78
Run Code Online (Sandbox Code Playgroud)

git push --delete origin fix78
Run Code Online (Sandbox Code Playgroud)

第一个被解读为"push nothing into fix78",删除它.

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

git push . origin/master:master
Run Code Online (Sandbox Code Playgroud)

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

希望这可以帮助