github使用成长记
学校里一直都有自己写一些网页,一方面为了学习熟练技能,另一方面也是兴趣所在。但是独乐乐不如众乐乐,一直向往有那么一个平台能把自己做得东西分享给广大网友,并且想借着分享的契机和各位程序猿交流学习心得(这才是重点~)。因为大二大三只知道自己coding,也没有什么压力一定要找到这么个平台,所以有收获积累都是往本子上或者书上记来着。现在大四正是找工作实习的时候,带着电脑或者打印材料从而把东西展现给面试官,实在麻烦。这才知道大家已经用github用得火热啦!
不说废话,这两天琢磨github,终于琢磨出点浪花儿来。下面分享一些github使用感受以及遇到的问题与解决办法(毕竟本人目前是小白,有不对之处还望指出!)
一、github里面的版本库、工作区、分支(以下照旧没有顺序可言哟,都是我的学习路程)
一开始我只想用github来作为代码托管的一个平台,接触之后才知道说它是代码托管所实在是委屈它了,人家是一个集版本管理于一身的版本库。
形象地说,比如你作为主人发布一个网站(因为我对前端感兴趣)到github上,这个网站可能存在着某些bug。但群众的力量是伟大的,当一些网友看见你的网站并很感兴趣地帮你改了改并且提交给github,这时候你可以看到该网友改的地方,并可以把两个版本(一个是你自己提交的版本,一个是网友改过后提交的版本)的网站合并(我还没尝试,以后会有的?!),当然你也可以选择不理或者自己维护修改。要知道,在原版上修改是可怕的(万一修改错了,还不能回退就毁了),所以有许多类似于副本的版本给你修改用。
综上,可以理解为什么github是版本式托管
了解了它是一个版本库托管平台,OK,现在要把我本地的文件(一个网站文件)上传到网络端github了。
看着www.github.com中各种英文,并且终于注册好(sign up)一个账号、创建一个库(new repository)之后,以为能和百度云一样,直接上传文件(包括文件夹),却发现是我太天真。。。这个貌似要用客户端才能上传文件夹(目前我只知道需要用客户端)。于是我又屁颠儿跑去下客户端,乖乖,客户端总是安装失败(因为这是在线安装,貌似有些设置需要改,<但我改了也没用>)。无奈下我只好下一个离线安装包git bash。但是啊但是!gitbash是一个一点也没有友好用户界面的窗口,要用gitbash,你首先要遵守人家的规则(各种命令语句人家才能懂~),好吧,老实学着呗,毕竟互联网时代的我们要学着享受这些计算机带给我们的所有,想想其实命令语句有也没什么,无非就是熟练几行命令,之后用起来还是牛逼吼吼~
gitbash学起来(先上个窗口图镇镇~)
ok,接下来是各种命令的学习,详情可以参考http://www.open-open.com/lib/view/open1414396787325.html(也不知是哪位大神的整理,步骤清晰很简单)
学习了解完一些简单命令之后,你会发现一打开gitbash,只需要用cd命令切换到你的github中,然后将做好要上传的文件复制到github下,就可以开始上传啦。
现在说下上传时遇到的一些小问题:
1)用户名或密码无效(如图)
明明照着输入username(和你的github网站上的一致),但是注意到没,密码那一栏好像是空的(我当时也是傻的,以为不需要密码),虽然你看不到密码那一栏的变化(这也许就是某种技术掩盖,类似于加密),但其实是需要输入密码的。
之后上传关联库正确之后:
2)如何一次性add许多文件(上传文件夹的方式一模一样),并一起commit
如图只需要用空格间隔开就可以add
接着commit,其实提交的是上面add的所有文件(git commit -m '这是对提交的注释而已'),如图:
综上,解决了本地库连接版本库,并且将本地库的东西上传到网络端的版本库中啦。
讲讲分支的概念:其实开始就说了,为了不在原版本的代码上修改(以防造成不可逆错误),所以有了分支这个概念。在分支上建立不同版本的程序(修改或者删除某处),然后为了让所创建的项目更加完美,将各个版本(即各个分支)中的精华合并在一起。分支就类似于可编辑的副本。
本地种工作区和版本库以及add和commit的区别
工作区:就是本地电脑上看到的目录,就是你自己建的,打算用来做成库的一个文件夹
版本库:在本地电脑中的概念就是.git文件(这个是隐藏文件,除非你电脑设置过,一般是隐藏的),这个你也别管,人家是一个文件夹,类似工作区,里面有stage(暂存区),指向master(git自动创建的第一个分支,也就是自己的原分支)的HEAD指针等等
add其实就是将工作区中的文件加到.git中的暂存区
commit其实就是将暂存区中的add的文件放到分支中(比如master)
以上,先到这儿,欢迎一起讨论前端,学习前端。本人github --> https://github.com/HalenChiang