Source Tree Push:提示:更新被拒绝,因为你当前分支的提示落后了
Source Tree Push : hint: Updates were rejected because the tip of your current branch is behind
我正在尝试使用源代码树推送我的应用程序。
我将应用程序(本地)恢复到旧版本,进行了一些更改,现在我想再次推送,但出现此错误:
git -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags --set-upstream origin dev:dev
Pushing to https://user@bitbucket.org/hykaruz/assist-ponto.git
To https://user@bitbucket.org/hykaruz/project.git
! [rejected] dev -> dev (non-fast-forward)
error: failed to push some refs to 'https:/User:bitbucket.org/hykaruz/Project.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
PS。我的版本太旧了,我必须下载最后一个版本,然后我才能提交并推送我的应用程序,所以如果你遇到同样的问题,请检查是否有更新。
因为您的提交历史与上游存储库不同(您不仅添加了更多提交),git 拒绝推送更改 因为这样您可能会丢失工作.
如果您确定要用自己的历史覆盖上游存储库历史记录(例如,您是唯一推送到该存储库的人),则必须添加 -f
以强制推送。
对于完全相同的错误,我不是唯一的开发人员。
所以我去提交并同时推送我的更改,在 Commit
对话框弹出窗口的底部看到:
...但我犯了一个巨大的错误,忘记点击 Fetch
按钮查看我是否有最新的,但我没有。
提交成功执行,但没有推送,而是给出了同样提到的错误;
...即使其他开发人员没有更改与我相同的文件,我也无法提取最新版本,因为出现了同样的错误。
GUI 解决方案
大多数时候我更喜欢坚持使用 Sourcetree 的 GUI(图形用户界面)。这个解决方案可能并不理想,但是这对我来说是让事情重新开始的原因,而不用担心我可能会丢失我的更改或损害其他开发人员的最新更新。
第 1 步
右键单击您之前的提交以撤消本地提交的更改,然后 select Reset current branch to this commit
像这样:
第 2 步
一旦所有加载旋转器消失并且 Sourcetree 完成加载上一个提交,在 window 的左上角,单击 Pull
按钮...
...然后会弹出对话框,点击右下角的OK
按钮:
第 3 步
拉最新后,如果您没有收到任何错误,请跳至第 4 步(下面的下一步)。否则,如果您此时发现任何合并冲突,就像我对 Web.config
文件所做的那样:
...然后单击顶部的 Stash
按钮,将出现一个对话框弹出窗口,您需要写一个 Descriptive-name-of-your-changes,然后单击 OK
按钮:
...一旦 Sourcetree 完成存储您更改的文件,重复 STEP 2 中的操作(上面的上一步),然后您的本地文件将有最新的更改.现在可以通过打开 Sourcetree 左栏底部看到的 STASHES
重新应用您的更改,使用箭头展开您的存储,然后右键单击选择 Apply Stash 'Descriptive-name-of-your-changes'
,然后 select OK
弹出对话框中的按钮:
如果您现在有任何合并冲突,请转到您首选的文本编辑器,例如 Visual Studio 代码,然后在受影响的文件 select 中 Accept Incoming Change
link,然后保存:
然后回到 Sourcetree,点击顶部的 Commit
按钮:
然后右键单击冲突文件,在 Resolve Conflicts
select 下 Mark Resolved
选项:
第 4 步
终于来了!!!我们现在可以提交我们的文件,也可以在单击 Commit
按钮之前选中 Push changes immediately to origin
选项:
P.S。在写这篇文章时,另一个开发人员在我提交之前提交了一个提交,所以不得不重复很多步骤。
我正在尝试使用源代码树推送我的应用程序。
我将应用程序(本地)恢复到旧版本,进行了一些更改,现在我想再次推送,但出现此错误:
git -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags --set-upstream origin dev:dev
Pushing to https://user@bitbucket.org/hykaruz/assist-ponto.git
To https://user@bitbucket.org/hykaruz/project.git
! [rejected] dev -> dev (non-fast-forward)
error: failed to push some refs to 'https:/User:bitbucket.org/hykaruz/Project.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
PS。我的版本太旧了,我必须下载最后一个版本,然后我才能提交并推送我的应用程序,所以如果你遇到同样的问题,请检查是否有更新。
因为您的提交历史与上游存储库不同(您不仅添加了更多提交),git 拒绝推送更改 因为这样您可能会丢失工作.
如果您确定要用自己的历史覆盖上游存储库历史记录(例如,您是唯一推送到该存储库的人),则必须添加 -f
以强制推送。
对于完全相同的错误,我不是唯一的开发人员。
所以我去提交并同时推送我的更改,在 Commit
对话框弹出窗口的底部看到:
...但我犯了一个巨大的错误,忘记点击 Fetch
按钮查看我是否有最新的,但我没有。
提交成功执行,但没有推送,而是给出了同样提到的错误; ...即使其他开发人员没有更改与我相同的文件,我也无法提取最新版本,因为出现了同样的错误。
GUI 解决方案
大多数时候我更喜欢坚持使用 Sourcetree 的 GUI(图形用户界面)。这个解决方案可能并不理想,但是这对我来说是让事情重新开始的原因,而不用担心我可能会丢失我的更改或损害其他开发人员的最新更新。
第 1 步
右键单击您之前的提交以撤消本地提交的更改,然后 select Reset current branch to this commit
像这样:
第 2 步
一旦所有加载旋转器消失并且 Sourcetree 完成加载上一个提交,在 window 的左上角,单击 Pull
按钮...
...然后会弹出对话框,点击右下角的OK
按钮:
第 3 步
拉最新后,如果您没有收到任何错误,请跳至第 4 步(下面的下一步)。否则,如果您此时发现任何合并冲突,就像我对 Web.config
文件所做的那样:
...然后单击顶部的 Stash
按钮,将出现一个对话框弹出窗口,您需要写一个 Descriptive-name-of-your-changes,然后单击 OK
按钮:
...一旦 Sourcetree 完成存储您更改的文件,重复 STEP 2 中的操作(上面的上一步),然后您的本地文件将有最新的更改.现在可以通过打开 Sourcetree 左栏底部看到的 STASHES
重新应用您的更改,使用箭头展开您的存储,然后右键单击选择 Apply Stash 'Descriptive-name-of-your-changes'
,然后 select OK
弹出对话框中的按钮:
如果您现在有任何合并冲突,请转到您首选的文本编辑器,例如 Visual Studio 代码,然后在受影响的文件 select 中 Accept Incoming Change
link,然后保存:
然后回到 Sourcetree,点击顶部的 Commit
按钮:
然后右键单击冲突文件,在 Resolve Conflicts
select 下 Mark Resolved
选项:
第 4 步
终于来了!!!我们现在可以提交我们的文件,也可以在单击 Commit
按钮之前选中 Push changes immediately to origin
选项:
P.S。在写这篇文章时,另一个开发人员在我提交之前提交了一个提交,所以不得不重复很多步骤。