【原】聊聊Git
in 备忘 with 0 comment

【原】聊聊Git

in 备忘 with 0 comment

只有自己深深痛过,才能体会别人的痛,于是难得自我反省。 --席绢


写在前面的话

前些日子,技术部门讨论,决定将项目由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的了解自然就深了。

Comments are closed.