项目开发离不开项目管理,而项目管理我认为git是最好用的版本控制工具,结合github强大的资源,git应该成为每一个程序员的必备,今天就来介绍一下git常见问题的处理。
关于git入门,廖雪峰的git博客 已经介绍地非常清楚了,这里就不在重复介绍,主要讲一些常见问题的解决方法。
1. 用线上版本强制覆盖本地代码
有时候本地调试、debug,本地代码已经改的一团糟了;或者线上功能好使,而本地功能不好使,希望用线上代码强制覆盖本地代码,git命令如下:
git fetch --all //获取线上所有分支的的代码
git reset --hard origin/master //使用远程(origin)master分支的代码覆盖本地代码
注意:此命令与git checkout .
的区别,checkout是放弃本地修改,将代码回退到本地版本库最新版本,reset是放弃本地修改,将本地代码回退到线上最新版本
2. 放弃所有本地修改,会退到本地库最新版本
git checkout . // . 代码当前目录下的所有文件及其子文件
3. 回退add操作
有时候进行了add -A
操作 但发现把一些不需要的文件添加进去了,这时候怎么办呢?可以执行以下命令:
git reset .
不用担心已经做过的代码修改会丢失,你会发现,执行此命令之后,所有你修过的文件的修改还在,并且还处于未add的状态。
4. 冲突解决
有时候本地版本和线上版本相互冲突,无法自动merge,这时候需要手动解决冲突。但发现冲突解决,删除冲突标记之后,执行git ststus
发现文件还是处于unmerge状态,这时候怎么办呢?可以用tortoise工具选中冲突文件标记resolved
5. 将某个文件彻底从版本库里面删除
有时候不小心将某个大文件添加进了版本库,但是在往远程提交的时候发现文件太大无法提交,这时候就想把这个文件删掉,但执行 git remove [文件路径]
操作提交之后,发现还是无法往远程提交。这是因为虽然当前版本没有了这个文件,但历史版本里面还有,所以怎么将一个文件彻底从版本库里面删除呢?
参考 从git里面彻底删除某个文件的版本(适用于大文件的误传) 亲测好使。