从一个独立的头上做一个git推

Win*_*cca 53 git git-push

我是一个独立的头,并做了一些改变.我想用git推动这些改成这个独立的头部.我不希望我的更改进入开发分支,当然也不是主分支.我正在与另一个人合作.

示例分支

   develop
   master
   *(HEAD detached at origin/49792_testMocha)
Run Code Online (Sandbox Code Playgroud)

如何在不影响开发或掌握的情况下进入头部?

Moh*_*iri 129

如果你是一个独立的头,你想推到你的远程分支

git push origin HEAD:name-of-your-branch
Run Code Online (Sandbox Code Playgroud)

否则你可以创建一个新分支并推送到它(它将自动创建)

git branch new-branch-name
git push -u origin new-branch-name
Run Code Online (Sandbox Code Playgroud)

  • Sssso很有帮助,我登录SO只是为了提升这一点. (7认同)
  • 如果您的远程分支有一个特殊名称并且您收到如下消息:错误:无法推送到不合格的目标:分支名称目标 refspec 既不匹配远程上的现有 ref 也不以 refs/ 开头,我们无法根据源引用猜测前缀。错误:无法将一些 refs 推送到 'git@github.com:user/repo.git' 您可以使用 refs/heads 作为分支名称的前缀: git push origin HEAD:refs/heads/branch-name (4认同)
  • 使用第一个命令,您假设具有相同的远程分支。否则,您需要创建一个新分支并推送它。 (2认同)

J. *_*tus 49

使用创建新分支 git checkout -b BRANCH_NAME

然后将新分支推送到远程: git push origin BRANCH_NAME


Mat*_*att 18

虽然这里的所有答案都有点回答原始问题(如何从分离的头部推出而不影响其他分支)所有建议创建一个新的分支.

以下是如何在创建新的本地分支的情况下推送到新的远程分支.

我给你:

git checkout --detach # (or anything else that leaves you with a detached HEAD - guillotine anyone?)
[change stuff & commit]
git push origin HEAD:refs/heads/my-new-branch
Run Code Online (Sandbox Code Playgroud)

替换origin为适当的远程名称(您具有写访问权限),以及my-new-branch您想要调用新分支的任何内容.

您的提交HEAD将被推送到一个名为的新分支my-new-branch.

田田!

  • 我不小心使用了`HEAD:refs/features/my-new-branch` 而不是`HEAD:refs/heads/features/my-new-branch` - 我没有看到新的分支。在对 SO 进行一些搜索之后,我找到了一种查看它的方法:`git ls-remote` 并使用 `git push origin :refs/features/my-new-branch` 将其删除。希望它可以帮助其他忘记他们的“头/”的人;-) (4认同)