git中的版本领先是怎么定义的?

我在master分支上切出分支A后(远程仓库有A分支),我现在master修改了文件master.txt,然后我切到A分支后修改了A.txt文件。
此时我在A分支上想push到远程仓库上:git push origin A,但是此时提醒我远程分支的版本领先‘Updates were rejected because the tip of your current branch is behind’,让我先pull一下?请我这个版本领先是什么意思?怎么定义的呢?

阅读 3.9k
4 个回答

你使用命令是将本地的A分支推送到远程的A分支,本地分支并未完全包含远端分支的改动,即远端A有的代码,本地A没有,基于远端库版本优先原则,系统就提示远端A领先,需要先把远端代码拉下来和本地合并后(因为有可能有代码冲突,需要push代码的人来解决)才允许push。

远端仓库是否自动生成了readme?

代码说明下

const remote = ['eff123', '12fr4', 'edf42']
const local = ['eff123', '12fr4']

function isBehind(remote, local) {
    return local.indexOf(remote[remote.length -1]) === -1
}

isBehind(remote, local) // true

这个分支,应该不单是你一个人在操作吧?应该是有人在你push之前,提交了一个版本,git执行push操作的时候,都会查看你本地的版本是否是最新的,不是最新的,都会先让你拉取远程仓库的代码,然后再push。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进