当本地repo尚未合并origin HEAD时,在git中提交提交

时间:2012-05-17 09:30:14

标签: git version-control

假设我的本地存储库当前是原始文件后面的一个提交。假设我在本地存储库中提交了与源不冲突的更改。如何在不先从原点拉动/合并更改的情况下将此更改推送到原点?

3 个答案:

答案 0 :(得分:3)

好的,所以你被非快进推送拒绝了,你有理由不这样做 想要从遥控器中提取最新的更新。我认为很明显你需要分支 你的改变。

所以让我们在公共点创建一个分支,HEAD~n,在你的情况下HEAD~1:

git branch myfeat HEAD~1

然后快进:

git checkout myfeat
git merge master

现在新分支有一个共同点,所以只需:

git push origin myfeat

远程仓库现在看起来像这样:

--X---X--X--Xbug      (master)
          \
           \--Xfeat   (myfeat)

现在其他人可以合并/修改您的功能。最终,您必须修复错误并将其拉到本地,或者您在保留自定义本地主数据时设计略有不同的工作流程。

答案 1 :(得分:0)

你不能做你所描述的,但我想你想要的是:

git pull --rebase
git push

上面的命令将优雅地合并您的本地仓库和远程仓库(不创建合并提交)并将您的本地提交推送到远程。

答案 2 :(得分:0)

他有可能只是为了备份他的变化来推送到遥控器,如果是这样的话,他可以用

进行。
git push origin HEAD:refs/heads/some_branchname_not_in_use

我通常会使用trash/somebranchname来表示这些目的。