一直说需要合并

我是GitHub的新手。 今天,当我试图将我的代码推送到GitHub时,我遇到了一些问题。

Pushing to git@github.com:519ebayproject/519ebayproject.git
To git@github.com:519ebayproject/519ebayproject.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:519ebayproject/519ebayproject.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我还没有推送任何资料库,所以为什么我需要拉什么?


这会导致远程存储库丢失提交; 小心使用它。

如果你不希望将远程分支合并到你的本地分支中(请参阅与git diff的区别),并且想要执行强制推送,请使用带-f的push命令

git push -f origin <branch>

origin是您远程回购的名称。

通常,该命令拒绝更新远程ref,该远程ref不是用于覆盖它的本地ref的祖先。 此标志禁用检查。 这会导致远程存储库丢失提交; 小心使用它。


正如消息告诉你的那样,

合并远程更改(例如'git pull')

使用git pull将最新的更改从远程存储库git pull到本地存储库。 在这种情况下,更改需要合并,因为您已经对本地存储库进行了更改。

我会提供一个例子和一张图片来解释。 让我们假设你最后一次从原点/分支拉入Commit B。你已经完成并提交了一些工作(Commit C)。 同时,其他人已完成工作并将其推送到起点/分支(提交D)。 这两个分支之间需要合并。

local branch:                         --- Commit C 
                                    /
                                   /
                                  /
origin/branch: Commit A ------ Commit B ---- Commit D

因为你是想要推动的人,所以Git强迫你执行合并。 要做到这一点,您必须首先从原产地/分店获取更改。

local branch:                         --- Commit C -- Commit E
                                    /               /           
                                   /               /             
                                  /               /               
origin/branch: Commit A ------ Commit B ---- Commit D 

完成合并后,您现在将被允许通过推送您的更改来将原点/分支快速转发到提交E.

Git要求你自己处理合并,因为合并可能会导致冲突。


推送前您是否更新了代码?

在推动任何东西之前使用git pull origin master

我假设你使用origin作为你远程的名字。

在推送之前,您需要先拉动,以便在推送某些内容之前使本地存储库保持最新状态(以防其他人已在github.com上更新代码)。 这有助于本地解决冲突。

链接地址: http://www.djcxy.com/p/27625.html

上一篇: keeps saying need merge

下一篇: Git commit shows over 100 commits after merge