一直说需要合并
我是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
上更新代码)。 这有助于本地解决冲突。