解决Everything up to date问题
前言
前端时间跳槽完毕,我记得我跳槽前给自己定了一个目标,就是在这次的工作期间尽可能地使用命令行来进行日常的开发工作,所以可以想象,git的命令行就是我第一座需要跨越的高山。不过还好,新公司的开发环境是ubuntu,所以我有足够的时间,或者说更多的机会来进行命令行的实践工作。
不是说我原来不用git,只是我原来的工作用图形化的git工具更多,像sourcetree。
正文
有点扯远了,开门见山,本次我所遇到的的Every up to date
问题的原因就是我是通过git push origin master的方式来提交代码的,这个操作的意思是将本地的master分支提交到远程的同名分支,也就是远程的master分支
。接触git命令行操作的不久的我原来认为这个操作的意思是将当前分支,也就是test分支提交到远程的master
分支。
这样以来就能解释everything upto date
问题产生的原因,因为本来就没有push本地test的代码,而是尝试push本地的master分支到远程的master分支,我这里的情况是因为本地和远程的master分支已经统一过了,所以就返回了everything up to date
的反馈。
要是如果不像我这里的情况,本地的master分支和远程的master分支并没有完成同步,就会出现下面这个情况:
error: 推送一些引用到 'https://gitee.com/ciruy/blog.git' 失败
提示:更新被拒绝,因为推送的一个分支的最新提交落后于其对应的远程分支。
提示:检出该分支并整合远程变更(如 'git pull ...'),然后再推送。详见
提示:'git push --help' 中的 'Note about fast-forwards' 小节。
这两个问题的解决方案其实完全一样,只是表现形式不太一样罢了。
顺便说一下我怎么找出这个问题的原因的,通过如下的命令:git help push
就能在EXAMPLES里找到git push origin master
的使用方法:
git push origin master
Find a ref that matches master in the source repository (most likely, it would find
refs/heads/master), and update the same ref (e.g. refs/heads/master) in origin
repository with it. If master did not exist remotely, it would be created.