3

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

4

3 回答 3

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)

现在其他人可以合并/重新定位您的功能。最终,您将不得不修复错误并将其拉到本地,或者您设计一个稍微不同的工作流程,因为您要保留一个自定义的本地主机。

于 2012-05-20T04:30:54.787 回答
0

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

git pull --rebase
git push

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

于 2012-05-17T09:35:21.333 回答
0

他可能只想推送到遥控器纯粹是为了备份他的更改,如果是这样的话,他可以这样做

git push origin HEAD:refs/heads/some_branchname_not_in_use

我通常trash/somebranchname用于这些东西,目的很明显。

于 2012-05-17T09:45:58.890 回答