Heim > Fragen und Antworten > Hauptteil
因为有时候本地上无网,然后不小心把新文件代码提交到github后,下次提交的时候这些文件好像被标记已提交(实际没有提交上去),然后github和本地的代码就不同步
迷茫2017-05-02 09:35:16
不会吧。
我的步骤通常是这样git push
如果失败的话,说明网络上的版本已经更改过了,那就git pull
如果失败的话,说明网络的版本和本地的版本在合并时可能产生冲突,那就git stash
(把本地的修改全部缓存起来)
然后再git pull
然后再git stash pop
(把缓存起来的修改恢复)
然后如果有冲突解决冲突,没有就git push
Windows下用乌龟的Git工具吧。
PHP中文网2017-05-02 09:35:16
= = 你所说的提交是commit么?
如果是commit是没问题的啊,因为commit是把代码提交到本地仓库
比如你没网时
//改了一些文件
git commit -am 'fix a bug'
//又改了一些文件
git commit -am 'add new func'
这些更改都是被提交到本地仓库的,远程仓库还是没变的
等到你有网时
git push
这时会把远程仓库跟你本地仓库对比,然后把更改push到远程仓库
这时远程仓库也会有这两条提交记录的
'fix a bug'
'add new func'
推荐你去看下 git教程
高洛峰2017-05-02 09:35:16
如果你十分确定不是因为别人更新导致你的请求无法完成,而是因为上次网络的原因导致上次提交导致远程版本库出问题了(可能性不大),而且你有十分确定本地库是没有问题的,你可以:
git push origin master:master --force
PHPz2017-05-02 09:35:16
我觉得是这样的哈,git个github是两个不同的概念,我理解你是没有网情况下提交到了本地的版本控制管理中,而并没有push到远程服务器的版本控制,git是分布式的版本控制,也就是远程和本地都维护了一个完整的版本库,如果你连上网pull下代码就是从服务器上拉取代码并合并到本地分支,如果你使用了fetch则需要看一下你有没有merge远程分支。