搜索

首页  >  问答  >  正文

git 提交问题

提交都在master主分支上提交的;

项目是两个开发,因为经常使用对方文件比较多,不打算分支开发在主分支提交和修改,我们每次提交代码 都是先git pull 然后git add . git commit git push这样的命令,但是经常报错,说什么版本更新被拒绝,因为您当前分支的提示后面
Updates were rejected because the tip of your current branch is behind
这样什么原因导致的;

天蓬老师天蓬老师2790 天前668

全部回复(6)我来回复

  • PHPz

    PHPz2017-05-02 09:50:29

    比如你的线上分支有两个提交1和2
    你的线下分支也有两个提交1和3
    这个时候你把线上分支pull下来之后有可能是123 也有可能是132(用google百度一下rebase)
    如果你线上的分支是12你线下的分支pull以后是132 那就会产生冲突导致你这种情况(只能在末尾加不能在中间插)
    还有一种情况就是用了amend 这个时候虽然看似你线上线下是一个提交(commit message一样) 实际上已经不一样了(commit id变了) 所以git会认为是两个提交 这两个提交改变的地方有重叠 导致冲突产生
    要解决这个问题需要用push -f强制提交 请认真搜索仔细研究这个命令的作用 产生一切后果概不负责

    回复
    0
  • 怪我咯

    怪我咯2017-05-02 09:50:29

    你是不是有过amend提交啊

    回复
    0
  • 怪我咯

    怪我咯2017-05-02 09:50:29

    git pull --rebase (逃

    回复
    0
  • 黄舟

    黄舟2017-05-02 09:50:29

    你拉下代码来git pull了以后,你应该和你本地的git rebase master合并一下,然后再push

    回复
    0
  • 習慣沉默

    習慣沉默2017-05-02 09:50:29

    先看下状态git status ,红的话就git add . ,警告就强行-A, add之后是commit ,commit再pull下载,pull完有冲突先解决冲突再重新从add开始,最后push,至少我这样做好少有错。。

    回复
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-02 09:50:29

    因为已经在git的远程仓库上提交代码了, 你不能直接提交了, 你必须先把远程仓库的代码同步到你的本地, 才可以提交, 一般情况下提交之前 习惯性git pull --rebase

    回复
    0
  • 取消回复