🤓1. pull项目时
最常使用的git操作大概就是:
git add XXX
git commit -m "XXX"
# 注意 -m参数中可以使用 #+序号,表示与对应的issue关联
git push origin master
例如:下面的就是 git commit -m "#1 update XXX"
之后的效果(只要-m参数中#num和其他东西用空格隔开了就行)
🥪1.1. 本地比远程仓库多了文件,导致报错
- 错误:pull项目时,报错
error: failed to push some refs to 'https://github.com/XXXX.git'
- 原因:原因是远程仓库中的文件和我们本地的仓库有差异,例如你的远程仓库有个文件Readme. md(网页端建立),但是本地仓库却没有,就可能会出现这种情况。
- 避免:养成使用命令行的习惯,不要在网页端,例如github,新建readme.md之类的文件
- 解决:
git pull origin master --allow-unrelated-histories # 直接从远程拉取最新的内容,使git允许合并不相关的历史
参考:
🤠1.2. 远程仓库修改过,本地也修改过,更新冲突
- 错误:pull项目时,提示
error: Your local changes to the following files would be overwritten by merge: image_quality/image_quality.py Please commit your changes or stash them before you merge. Aborting Updating 061f8ce..ca63880
- 原因:没有拉取最新的远程repo,就直接在旧的本地进行了更改,更新冲突
- 避免:同上,先拉取更新,再在本地修改。。
- 解决:
# 1. 更新所有分支到最新 git fetch --all # 2. 重置至当前origin/master状态 也可以写一个SHA hash码(恢复至某个状态) git reset --hard origin/master
参考:
- stack overflow:How do I force “git pull” to overwrite local files?
- 或者方便理解的中文翻译:“git pull”如何强制覆盖本地文件?
👀1.3 恢复至之前的某个版本
- 问题:由于不断在更新项目,所以中间有的错了,有的对了,需要更新会之前的一个版本
- 解决:
git checkout git reset --hard SHA
- SHA是hash码:
参考: