手记

更进一步掌握Git与GitHub

老祖宗说得好

兵欲善其事,必先利其器。想要学好编程,Github是一件利器!

记得在注册成为GitHub用户的两年时间里,我的GitHub都宛如一坨xiang,根本没有意识使用GitHub来提高自己的编程技巧,这实在是一个遗憾。

反省了一下,除了自身对英语的恐惧感,以及网上各种过时的、说的云里雾里的教程外,还有自己的一个兴趣、意识、学习力、缺乏应用场景等等等。剩下的就不说,相信都懂,说多了容易陷入自我否定的死循环,下面开始进入正题。<br>

(一)熟悉Markdown语法

由于在github上面的文本编辑是完全基于Markdown语法的,如果你想知道什么是Markdown语法,请百度或者Google;如果你想练习Markdown语法,那么请戳这里,老老实实,按部就班敲一敲,很快就能上手,相信你也会很快爱上它,因为它在很大程度上让我们节省了大量的时间和精力,使我们专注于内容,而不是各种花里花俏的排版。<br>

(二)创建应用场景

都说掌握一个工具,掌握一门编程语言最好的方式就是不断地实践,然而大部分无人指点的新手根本无法准确的知道这个工具或者这门编程语言到底能干什么,从哪下手还真是个问题??长期下来,自然而然对其就会失去兴趣。

相信大部分刚接触web开发的新手(当然包括我啦),都十分渴望将自己开发的网站部署到网上,能随时随地让自己或让别人进行浏览。除了购买网络主机能够实现这一点,利用Github也可以。在这一方面,Github无疑是最好的选择,理由是:简单、免费、能够充分展示自己。在前面一篇手记里我展示了如何将自己的网站快速部署到Github上,所以在这就不做重复的叙述了。<br>

相信很多有经验的人都能看出新手教程那篇未免过于啰嗦,甚至有些步骤完全没必要。但是,凡事都得有个过程,得一步步来,熟悉后的步骤为:

- New repository
- git clone
- cd 
- git add .
- git commit -m "内容"
- git pull
- git push

在这个过程中有两个点需要稍微解释下:<br>
1、选择Initialize this repository with a README,是为了初始化一个README文件,看字面意思就知道。<br>
2、在Initialize this repository with a README下方有两个选项,第一个添加规则,表示git push应该忽略掉哪些文件,我们可以填node,忽略那个体积庞大的node_modules文件;另一个是选择哪项开源协议的意思,一般填写MIT。<br>
3、选择master branch,是为了给项目一个地址,这样才能通过url访问到你的网站。<br>

(三)Github常用板块说明

Overview :
翻译成中文就是“概述”的意思,但是实际上它相当于你的社交账号的首页,上面展示了你的一些项目和基本信息。你可以点击customize your pinned repositories 把你最为得意或者最想让其他人看到的项目展示出来。

Repositories:
根据字面意思可知,这是你的项目仓库,你的所有项目都包含在里面(包括从别人那里fork来的项目)。

Stars:
这是你点赞过或者收藏的项目,假如你认同一个人的项目,无妨给个stars,假如你想对一个人的项目肆无忌惮的动手动脚,那么就将该项目fork下来。

Follwers:
根据字面意思可知,这是你的跟随者,也就是关注你和认同你的粉丝。

Follwing:
根据字面意思可知,这是你跟随的人,也就是你所关注和认同的人。<br><br>

(四)利用Github进行学习的好处

其实感觉现在自己也并没有充分利用到这个全球最大的同性交流平台,不过还是要谈谈自己在这里所得到的成长:<br>

1、开阔眼界:
在这里真的见到了太多的对编程热情和擅长的人,他们的项目以及所记录的事情绝对会让你重新认识何谓编程爱好者、何谓技术人生。如何关注牛人?其实途径有非常多,在这里推荐一个自己欣赏的人jawil。然后你可以根据他所关注的人进行选择关注更多的牛人,从而学习他们,提升自己。

2、学会总结:
也不知道为啥,现在觉得在Github上做相关的总结是十分令人身心愉悦的事情,在这过程中也慢慢地促进了自己的成长。

3、阅读英文文档:
不说了,都是被逼的。逼着逼着,突然就喜欢了。。。<br>

(五)如何更好的玩耍Github?

1、下载各种有用的插件
萝卜青菜,各有所爱,这个还是大家自行搜索吧。之前我用的是jawil开发的GayHub插件,用来优化Github的阅读体验。

2、使用emoji
这是Github支持的表情列表,能够让你的Github拥有一定骚动性,请查看表情列表大全<br>

(六)当使用git上传项目到GitHub老是要输入账号密码怎么破?

其实导致上面的原因是线上与线下的环境并没有打通,只要我们创建并配置好了SSH-key那么问题就会迎刃而解,其中的原理就是在线下创建一个私钥,线上配置好了一个公钥,私钥和公钥进行连接配对,这样我们在上传和下载代码的时候就不用账号和密码了。关于如何创建并配置GitHub的SSH-key网上有非常多的教程,大家自行搜索,我就不一一说明。

当你配置好SSH-key后,那么在github上创建的项目中,在clone or download那里就能选择是“Use HTTPS”还是“Use SSH”将项目下载到本地上。如果使用的是SSH,那么在git push的时候就不用输入账号与密码;使用HTTPS方式的话,可能每次git push或者git pull的时候就要输入账号和密码了,十分不方便。

上面是一种比较复杂的办法,下面来说一种简单的,只要在命令行中输入:

git config --global credential.helper store

那么就会在你本地生成一个文本,上边记录你的账号和密码。然后你使用上述的命令配置好之后,再操作一次git pull,然后它会提示你输入账号密码,这一次之后就不需要再次输入密码了。

(七)GitHub上分支的作用以及创建

在多人协作开发中,分支的作用十分明显,因为能够十分清楚的知道目前的分支内容与上次的分支内容到底改变了什么,利于我们快速还原代码和寻找bug。下面具体介绍下创建一个分支的过程:

  • 假装你已经熟悉我上面所说的内容,在GitHub上创建了一个项目,并且git clone到本地
  • 步骤一:进入本地git clone的项目地址;
  • 步骤二:试着新建一个文档并将该文档push到GitHub上,记得文档上要有内容;
  • 步骤三:在git命令窗口创建一个本地分支(git branch 分支名);
  • 步骤四:切换到新的分支(git checkout 分支名)
  • 步骤五:修改文档内容,并且重新上传到GitHub中;
  • 步骤六:在最后一步上传命令中得修改为git push origin 分支名
  • 步骤七:到GitHub对比下这两个分支的内容,细细体会下分支对日常开发起到的作用。
  • 参考资料:点击我呀

如果你需要将该分支的内容和主分支的合并,那么只需这么做就可以了:

  • 首先是切换到主分支(git checkout master),主分支名默认为master;
  • 接着是合并内容(git merge origin/分支名);
  • 最后是提交内容(git push),假如这步有错误的话说明你线上主分支内容可能有变化,先使用git pull,r然后再使用git push<br>

(八)git回滚到任意版本

在开发项目的时候,往往在完成一个功能或者模块的时候,都会把运行良好的代码push到云端。这样我再继续往下开发的时候,当发现当前代码变得不可维护的时候,我们能够回滚到任何一个已经提交的版本代码,下面是相关步骤:

  • 查看已提交过的代码: git log
    commit 9754f375585f584498fcaecc2ad5852c98896 (HEAD -> zxfHome, origin/zxfHome)
    Author: James Wenming <***031405@qq.com>
    Date:   Thu Aug 9 13:45:18 2018 +0800
    add
  • 回滚到指定代码版本: git reset --hard commit值(commit值指的是git log后每个版本里面commit的值)<br>

(九)git对他人的代码进行修改

  • 步骤一:使用命令git checkout 分支名,切换到需要被修改的分支
  • 步骤二:使用命令git pull origin 分支名:分支名,将最新的线上分支代码同步下来
  • 步骤三:之后就可以修改这个分支的代码然后再git push

(十)git push origin "分支名" 失败了怎么办

造成上面的错误往往是因为在push之前没有将最新的线上代码pull下来,如何用命令来改正这个错误呢?其实我暂时也没发现很好的办法,因为在执行push命令的时候往往已经git add .和git commit -m "内容", 如果要pull最新的线上代码,那么就必须把已经暂存到线上的代码全部恢复下来,就是这一步让我不知手措。<br>

下面给出我的一个笨方法:

  • 将更新的代码复制出一份保存在本地
  • 接着使用git log和git reset --hart commit值进行代码回滚
  • 然后再使用git pull origin 分支名:分支名
  • 把复制出来的代码再粘贴回线上最新的项目中
  • 最后就是:git add .、git commit -m "内容"、git push origin 分支名<br>

尾声

好了,关于Git和GitHub一些稍微常用且简单的知识点就介绍到这里,更多内容请看后续手记。

4人推荐
随时随地看视频
慕课网APP