只有自己深深痛过,才能体会别人的痛,于是难得自我反省。 --席绢
写在前面的话
前些日子,技术部门讨论,决定将项目由SVN
迁移到Git
,这样的结果就是很多对于Git不怎么了解的同事比较难上手(特别是美术的同事)。而我,作为一个公司“最闲”的程序,协助美术迁移git
成为了我的主要工作。在协助他们迁移git的时候,我遇到了很多的问题,有些是我原先就会的,有些是我后来学会的,现在做个汇总记下来。
场景一:我的分支不对了!
由于项目比较大,所以在项目中我们有用到submodel
,这样在进入不同文件夹的时候就会出现切换git
项目的情况,甚至执行git pull
命令的文件夹不一样,所在的分支也会不一样[分支的具体概念不在赘述],所以git checkout master
成为了我常用的命令。
场景二:Pull不了!Push不了!!
从SVN
过渡多来的新手通常有个通病,在他们的概念里没有提交的概念,只有推送,拉取的概念。所以就会直接push
要么就是直接pull
。了解Git
的人都知道,本地文件有修改的时候git pull
是拉取不成功的,git push
也没法推送,因为没有新的提交。所以git commit -m "info"
场景三:我想回到过去!!
版本控制器存在的一个重要原因是:可以回到过去,不会让我们的劳动成果丢失,那Git
如何才能回到过去呢?git checkout
?好吧是一个很好的办法,但是,Git
是一个树形结构,想回去,那唯一的办法是,将一个历史版本的代码作为一个新的版本提交上去,git checkout 版本Hash -- .
这个命令会将内容版本回到过去,但是版本号还是当前版本号,然后直接提交推送就好。
场景四:各种报错,不知道怎么弄!!
简单粗暴,git reset --hard
将没有提交的所有修改忽略(该操作不可逆),git clean -df
将没有被版本控制的文件删光光(该操作不可逆),这个是将一些软件生成的缓存文件清理干净的命令。到这里基本可以解决问题。
场景五:我打开项目文件夹超级卡,我的git命令执行超级慢
不得不说,你太脏了,是该清理清理了git gc
命令较为冷门,因为一般的项目根本感受不到git
卡,毕竟现在计算机的性能还是很棒的。但是我们的项目比较大,所以,我居然遇到了。
最后说两句,
git
的基本命令就是pull push commit checkout branch
等,基本会就可以了,至于其他命令,只是让我们用git
更加欢快,不管怎么说先用起来吧,遇到问题解决问题,慢慢的对git
的了解自然就深了。
本文由 陌上花开 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Jul 1, 2016 at 04:09 am