我是GitHub 的新手。今天,当我尝试将代码推送到 GitHub 时遇到了一些问题。
Pushing to [email protected]:519ebayproject/519ebayproject.git
To [email protected]:519ebayproject/519ebayproject.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]: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
是您的远程存储库的名称。
通常,该命令拒绝更新不是用于覆盖它的本地引用的祖先的远程引用。该标志禁用检查。这可能导致远程存储库丢失提交。小心使用。
消息告诉您,
合并远程更改(例如 “git pull”)
使用git pull
将最新的更改从远程存储库拉到本地存储库。在这种情况下,因为您已经对本地存储库进行了更改,所以提取更改将需要合并。
我将提供一个示例和一张图片进行解释。假设您从起点 / 分支的最后一次拉拔是在 CommitB。您已经完成并完成了一些工作(Commit C)。同时,其他人也完成了他们的工作并将其推到起点 / 分支(Commit 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
完成合并后,现在将允许您通过推送更改将源 / 分支快速转发到 CommitE。
Git 要求您自己处理合并,因为合并可能会导致冲突。
您是否在推送之前更新了代码?
推送任何内容之前,请使用git pull origin master
。
我假设您使用origin
作为遥控器的名称。
您需要先进行推送,然后再进行推送(以防其他人已经在github.com
上更新了代码),才能使本地存储库处于最新github.com
。这有助于在本地解决冲突。