Blog
Blog copied to clipboard
Github使用心得
:innocent: 老祖宗说得好
兵欲善其事,必先利其器。想要学好编程,Github是一件利器!
记录显示,我是在2016年7月5日注册的Github,意思就是说截止到今天(2018-01-05),时间已经过去549天(如何得出这日期?),但是为啥我的Github还宛如一坨那个啥?!!
反省了一下,除了自身对英语的恐惧感,以及网上各种过时的、说的云里雾里的教程外,还有自己的一个兴趣、意识、学习力、缺乏应用场景等等等。剩下的就不说,相信都懂,说多了容易陷入自我否定的死循环,下面开始进入正题。
基础
:mag_right:熟悉Markdown语法
由于在github上面的文本编辑是完全基于Markdown语法的,如果你想知道什么是Markdown语法,请百度或者Google;如果你想练习Markdown语法,那么请戳这里,老老实实,按部就班敲一敲,很快就能上手,相信你也会很快爱上它,因为它在很大程度上让我们节省了大量的时间和精力,使我们专注于内容,而不是各种花里花俏的排版。
:low_brightness:创建应用场景
都说掌握一个工具,掌握一门编程语言最好的方式就是不断地实践,然而大部分无人指点的新手根本无法准确的知道这个工具或者这门编程语言到底能干什么,从哪下手还真是个问题??长期下来,自然而然对其就会失去兴趣。
相信大部分刚接触web开发的新手(当然包括我啦),都十分渴望将自己开发的网站部署到网上,能随时随地让自己或让别人进行浏览。除了购买网络主机能够实现这一点,利用Github也可以。在这一方面,Github无疑是最好的选择,理由是:简单、免费、能够充分展示自己。下面展示如何将自己的网站部署到Github:
2、相信很多有经验的人都能看出新手教程那篇未免过于啰嗦,甚至有些步骤完全没必要。但是,凡事都得有个过程,得一步步来,熟悉后的步骤为:
- New repository
- git clone
- cd
- git add .
- git commit -m ""
- git pull
- git push
在这个过程中有两个点需要稍微解释下:
1、选择Initialize this repository with a README,是为了初始化一个README文件,看字面意思就知道。
2、在Initialize this repository with a README下方有两个选项,第一个添加规则,表示git push应该忽略掉哪些文件,我们可以填node那个包文件;另一个是选择哪项开源协议的意思,一般填写MIT。
3、选择master branch,是为了给项目一个地址,这样才能通过url访问到你的网站。
:bookmark_tabs:Github常用板块说明
Overview :
翻译成中文就是“概述”的意思,但是实际上它相当于你的社交账号的首页,上面展示了你的一些项目和基本信息。你可以点击customize your pinned repositories 把你最为得意或者最想让其他人看到的项目展示出来。
Repositories:
根据字面意思可知,这是你的项目仓库,你的所有项目都包含在里面(包括从别人那里fork来的项目)。
Stars:
这是你点赞过或者收藏的项目,假如你认同一个人的项目,无妨给个stars,假如你想对一个人的项目肆无忌惮的动手动脚,那么就将该项目fork下来。
Follwers:
根据字面意思可知,这是你的跟随者,也就是关注你和认同你的粉丝。
Follwing:
根据字面意思可知,这是你跟随的人,也就是你所关注和认同的人。
:green_book:如何利用Github进行学习?
其实感觉现在自己也并没有充分利用到这个全球最大的同性交流平台),不过还是要谈谈自己在这里所得到的成长:
1、开阔眼界: 在这里真的见到了太多的对编程热情和擅长的人,他们的项目以及所记录的事情绝对会让你重新认识何谓编程爱好者、何谓技术人生。如何关注牛人?其实途径有非常多,在这里推荐一个自己欣赏的人jawil。然后你可以根据他所关注的人进行选择关注更多的牛人,从而学习他们,提升自己。
2、学会总结: 也不知道为啥,现在觉得在Github上做相关的总结是十分令人身心愉悦的事情,在这过程中也慢慢地促进了自己的成长。
3、阅读英文文档:
不说了,都是被逼的。逼着逼着,突然就喜欢了。。。
:dart:如何更好的玩耍Github?
- 下载各种有用的插件> 萝卜青菜,各有所爱,这个还是大家自行搜索吧。之前我用的是jawil开发的GayHub插件,用来优化Github的阅读体验。
- 使用emoji
这是Github支持的表情列表,能够让你的Github拥有一定骚动性,比如这些:cupid: :hankey: :dancer:,请查看表情列表大全
:zzz:如何用Github Issues写技术博客?
介绍一篇文章,里面说的非常详细,相信看完后能马上学会使用。点击这里
:sweat_drops:当使用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的时候就要输入账号和密码了,十分不方便。
:rabbit:GitHub上分支的作用以及创建
在多人协作开发中,分支的作用十分明显,因为能够十分清楚的知道目前的分支内容与上次的分支内容到底改变了什么,利于我们快速还原代码和寻找bug。下面具体介绍下创建一个分支的过程:
- 假装你已经熟悉我上面所说的内容,在GitHub上创建了一个项目,并且git clone到本地
- 步骤一:进入本地git clone的项目地址;
- 步骤二:试着新建一个文档并将该文档push到GitHub上,记得文档上要有内容;
- 步骤三:在git命令窗口创建一个本地分支(git branch 分支名);
- 步骤四:切换到新的分支(git checkout 分支名)
- 步骤五:修改文档内容,并且重新上传到GitHub中;
- 步骤六:在最后一步上传命令中得修改为git push origin 分支名
- 步骤七:到GitHub对比下这两个分支的内容,细细体会下分支对日常开发起到的作用。
- 参考资料:点击我呀
如果你需要将该分支的内容和主分支的合并,那么只需这么做就可以了:
- 首先是切换到主分支(git checkout master),主分支名默认为master;
- 然后使用命令git pull origin 主分支名:主分支名,将最新的线上分支代码同步下来
- 接着是合并内容(git merge origin/分支名);
- 最后是提交内容(git push或者git push orgin 分支名),假如这步有错误的话说明你线上主分支内容有变化,而你在一开始并没有git pull拉下来让本地和线上代码保持一致
:sunflower: git回滚到任意版本
在开发项目的时候,往往在完成一个功能或者模块的时候,都会把运行良好的代码push到云端。这样我再继续往下开发的时候,当发现当前代码变得不可维护的时候,我们能够回滚到任何一个已经提交的版本代码,下面是相关步骤:
- 查看已提交过的代码: git log
commit 9754f375538855f584498fcaecc2ad5852c98896 (HEAD -> zxfHome, origin/zxfHome)
Author: James Wenming <***[email protected]>
Date: Thu Aug 9 13:45:18 2018 +0800
投放平台首页
- 回滚到指定代码版本: git reset --hard commit值(commit值指的是git log后每个版本里面commit的值)
:sunflower: git回滚到提交前
有时候我们会习惯性执行git add . 和git commit -m ""。当我们需要回到git add .前一步的时候那么执行该命令
- git reset --soft HEAD^
:rabbit: git log看不到最新的提交记录怎么破?
有这么一个场景:比如今天是1月6号,你改了一些代码,并且将其push到云端。然后突然发现了一个bug,于是git log查看提交记录,回滚到了1月5号写的代码中进行相关的测试。最后发现是后台童鞋的锅,那怎么办了,好办,再回滚今天1月6号提交的代码,然而,此时问题就来了“git log能查看到的提交记录最新是1月5号,今天1月6号提交的记录不见了!!”
这该如何是好,查看不到提交记录,意味着无法得到commit值,无法回滚到今天的项目版本,这就白写一天了!莫方,解决办法还是有的
- 1、在一开始提交今天1月6号的代码时,记住git log查看到的1月6号提交的代码commit值
- 2、在云端上查看commit值,比如在码云上你可以点击分支(如果有的话),再点击最新的提交关键字,之后你会看到这样的一个页面
:sunflower: git对他人的代码进行修改
步骤一:使用命令git checkout 分支名,切换到需要被修改的分支
步骤二:使用命令git pull origin 分支名:分支名,将最新的线上分支代码同步下来
:rabbit: git push origin 分支名 失败了怎么办
造成上面的错误往往是因为在push之前没有将最新的线上代码pull下来,如何用命令来改正这个错误呢?其实我暂时也没发现很好的办法,因为在执行push命令的时候往往已经git add .和git commit -m "内容", 如果要pull最新的线上代码,那么就必须把已经暂存到线上的代码全部恢复下来,就是这一步让我不知手措。
下面给出我的一个笨方法:
- 将更新的代码复制出一份保存在本地
- 接着使用git log和git reset --hart commit值进行代码回滚
- 然后再使用git pull origin 分支名:分支名
- 把复制出来的代码再粘贴回线上最新的项目中
- 最后就是:git add .、git commit -m "内容"、git push origin 分支名
:sunflower: 解决git pull/push每次都需要输入密码的问题
如果我们git clone的下载代码的时候是连接的https://而不是git@git (ssh)
的形式,当我们操作git pull/push到远程的时候,总是提示我们输入账号和密码才能操作成功,频繁的输入账号和密码会很麻烦。当然这个解决办法很简单,只要在命令行中输入:
git config --global credential.helper store
那么就会在你本地生成一个文本,上边记录你的账号和密码。然后你使用上述的命令配置好之后,再操作一次git pull,然后它会提示你输入账号密码,这一次之后就不需要再次输入密码了。
将远程git仓库里的指定分支拉取到本地(本地不存在的分支)
当我想从远程仓库里拉取一条本地不存在的分支时:
- 方式一:git checkout -b 本地分支名 origin/远程分支名
- 方式二:git fetch origin 远程分支名x:本地分支名x(事后需要手动切换分支git checkout 分支名)
本地分支改名和删除线上分支
- 改名:git branch -m 新分支名
- push到线上:git push origin head
- 查看线上分支:git branch -a
- 删除线上分支:git push origin --delete 分支名
恢复另一个分支的代码
场景:在A分支有个a.txt文件,基于A分支创建了B分支,在B分支中修改了a.txt文件并且push到了线上,之后我们想要将B分支中的a.txt内容恢复为A分支的a.txt内容,那么通过git命令该如何做呢?很简单
- git checkout origin/A -- a.txt (注:需要填写完整的a.txt的本地路径)
拉取线上分支最新代码到本地,合并之后push
- git fetch
- git merge origin/目标分支
git跳过eslint代码检查
- git commit --no-verify -m "备注"
博主 你好
我是从慕课网的评论区来到你的github的,从这个链接来的https://cruxf.github.io/IMOOC/HTML_CSS/DomBase/index.html
,
请问这个页面你是如何创建的呢?
博主 你好
我是从慕课网的评论区来到你的github的,从这个链接来的
https://cruxf.github.io/IMOOC/HTML_CSS/DomBase/index.html
, 请问这个页面你是如何创建的呢?
github被微软收购后就改版了 现在我也不是很清楚 不过大致流程应该是一致的 你摸索摸索