开发工具总结(3)之Git及GitHub快速入门图文全面详解

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/3f12bd3ccf2a

转载请标明出处:
https://www.jianshu.com/p/3f12bd3ccf2a
本文出自 AWeiLoveAndroid的博客

github纪念品

目录:

一、入门必备知识
(一)git,SVN,github的区分
(二)版本控制软件中Trunk和Branch的区别:
(三)github有什么作用?
(四) github的理解误区:
二、开始github之旅
(一)注册Github
(二)登陆Github,看看登陆后的菜单是什么样的。
(三)现在可以创建仓库试试看。
(四)下载git客户端,clone并提交本地代码到仓库里面。
(五)使用ssh进行下载和提交代码
三、一些实用的git命令操作
(一)使用git克隆(下载)一个仓库或单个文件夹
(二)关于git config配置文件的增删改查命令
(三)如何下载github某个单独目录(此方法也适用于gitlab 码云等工具)
四、git使用中遇到的错误集锦
(一)git clone 下载速度0bytes 出现error
(二)git push出现的错误
(三)git push出现的错误

github好多人都只听说过,但是没具体的用过,下面简单讲一下,大概30分钟让你快速入门。

一、入门必备知识

(一)git,SVN,github的区分

SVN也是版本控制系统,它是一个本地的版本控制工具。

git是免费,开源的分布式版本控制系统,在线的版本控制工具;

只不过git现在更流行,现在再用SVN比较落伍。所以,git算是程序员必备技能;

github是基于git来进行版本控制,git只是github上用来管理项目的一个工具而已,github的功能不仅仅就这点。

(二)版本控制软件中Trunk和Branch的区别:
Trunk---软件开发过程中的主线,保存了从版本库建立到当前的信息。 

Branch---软件开发过程中的分支,保存了从版本库的某一特定点(不一定是版本库建立时)到当前的信息。分支主要用于在不影响Trunk其它用户情况下进行一些关于新功能的探索性或实验性的开发,待新功能完善后它也可以合并到Trunk中。
(三)github有什么作用?

学习优秀开源项目;

多人协作;

写作;

个人简历:如果你github账号有不错的开源项目,star很多,他就算你的一个强有力的简历。

(四) github的理解误区:
      1.英语差,0基础能学得会么?

没问题的,直接找百度翻译,就可以,最好是用谷歌浏览器打开,因为自带谷歌翻译,任何英文网页都能翻译成中文的。(如下图所示)

↑ 上图是点击 翻译页面

原版的界面是这样的:(具体讲解后面有介绍)


↑ 上图是 原英文版的页面
↑ 上图是 翻译之后的中文页面

是不是很简单?所以千万不要怕看不懂英文而放弃GitHub。

      2.需要翻墙吗?

不需要,直接在浏览器打开就可以,速度还是很快的。

二、开始github之旅

(一)注册Github

打开浏览器,在地址栏输入地址:github.com,回车,注册就不用我说了,填写用户名(邮箱号码),密码,点击注册github,然后发一个邮件到你的邮箱,点击激活,就OK了。具体的就不截图了。

(二)登陆Github,看看登陆后的菜单是什么样的。

(1) 点击右上角的sign in(登陆),然后输入账户和密码,点击登陆就OK了。详解如下图:

↑ 登陆界面详解

(2)看看登陆进去的导航栏的组成:

↑ 导航栏的组成

(3)点头像 --> 选择 your profile --> 进入主页。

↑ 点击your profile 进入主页

(4)个人主页的介绍。

↑ 个人主页的介绍
(三)现在可以创建仓库试试看。

(1)点击+号,选择New repository

点击 + 号,新建仓库

(2)创建仓库

创建仓库

(3)假如创建库的时候忘记了勾选README那个对勾,别着急,创建好了项目之后是这样的(关于各部分都是干嘛的,后文有讲解),看下图:

添加README文档

(4)添加README文档

添加README文档

(5)添加好了之后,就会显示仓库的详细信息了,如下图有详细的讲解:


仓库的详细讲解

另外那个添加关键字的操作,由于步骤太多,不方便截图,我录制了一个gif,这里给大家看一下:

github给仓库添加关键字.gif

(6)回到主页,看看我们的库。

有3种方式回到首页:

  • 1. 点击你的用户名,如图:

    方式1

  • 2. 点击右上角的头像 --> 选择 your profile --> 进入主页,其他的和 方法1 一样的。

方式2
  • 3. 点击左上角的github的logo,然后在右边就可以看到你的所有的库。
    方式3
(四)下载git客户端,clone并提交本地代码到仓库里面。

【注意事项:】要把 文件夹显示后缀名,以及显示隐藏文件这个打开。

(1)下载git客户端,打开百度,搜索一下git客户端,下载然后安装就可以了,认准git,别下错了。

git客户端官网下载地址,点此进去。

选择电脑平台,如果是Windows,就点击Windows下载,如果是mac,点击Mac OS X下载。

选择平台

【注意:】如果是windows平台,点击了Windows进去之后,会自动弹窗下载,建议取消,手动去选择win 32位或者64位的去下载,免得你32位的电脑却被下载了64位的git客户端。

手动选择32位还是64位下载

最后就是安装了,这个选择一个路径,一直next就安装好了,安装好了之后会在桌面有个快键方式,如下图所示。


git快捷键

(2)使用git客户端下载github的库,就拿刚才那个Demo1来说吧,打开Demo1,点击绿色按钮,再点击小册子的那个图标,表示复制当前git仓库,如图所示。(如果你喜欢图形化界面,还可以安装一个TortoiseGit,这个不是我现在要讲解的重点,有兴趣的可以去百度一下怎么使用。)

image.png

【注意:】下方有两个另外下载的方式,左边那个是使用github客户端打开下载,右边那个是下载zip文件到本地。我以前没有安装git客户端的时候,想下载github的库都是选择下载zip到本地。

(3)在电脑上某一个英文路径下,右键-->选择Git Bash Here,然后命令行就弹出来了。

右键选择Git Bash Here

(4)初次使用git命令要设置邮箱和用户名,以后就不需要了。

【注意】邮箱和用户名一定要记住。

设置邮箱和用户名
比如邮箱是haha.163.com
名字是haha

命令如下:(注意要加空格)

git config --global user.email "haha@163.com"
git config --global user.name "haha"

(5)输入 git clone 然后右键,把刚才copy的地址粘贴过来,回车。

比如

 git clone https://github.com/XXX/Demo1.git

【注意】git clone 以及https之间都有一个空格 别忘记了。

使用clone命令下载仓库

(6)【修改或者上传文件怎么办?】打开下载好的文件夹,假如我新增一个文件(任意文件或者文件夹都是可以的),比如123.txt,随便加一点东西进去,然后保存。

新增文件

(7)打开刚才clone下来的那个文件夹Demo1,执行以下命令,上传到仓库。

git add . 回车(表示添加到本地库)
git commit -m "新增了一个文件123.txt" 回车(提交更新信息)
git push origin master 回车(推送到远程库的master分支)
经过这三个命令 文件就上传到仓库中了。

如图:


上传到仓库

(8)更新本地仓库。

git pull 把远程仓库的项目拉取到本地。如果远程库和电脑里面的是一样的,机会显示Already up-to-date,已经是最新的库,如果远程库有最新的,就会下载最新的到电脑里面。

更新电脑里面的文件夹

(9)回到github,刷新一下,就看到最新的内容了。

最新的内容
(五)使用ssh进行下载和提交代码

(1) 输入命令行ssh-keygen -t rsa -C xxx@xxx.com 生成ssh 中间提示输入密码,直接回车即可。

注意:xxx@xxx.com换成你的邮箱地址。

如下图所示:

(2)ssh文件在C:\Users\Administrator\.ssh,其中Users是你电脑的用户名。通过命令ls ~.ssh可以查看生成的文件。可以看到生成的id_rsa(私钥)和id_rsa.pub(公钥),如图所示:

(3)初次使用git命令要设置邮箱和用户名,以后就不需要了。

【注意】邮箱和用户名一定要记住。

设置邮箱和用户名
比如邮箱是haha.163.com
名字是haha

命令如下:(注意要加空格)

git config --global user.email "haha@163.com"
git config --global user.name "haha"

(3)使用命令vi id_rsa.pub,然后复制文件内容,进入github页面,Settings -> SSH and GPG keys,点击SSH Keys后面的绿色按钮New SSH key新建一个SSH key,然后在文本框中输入复制的内容,然后点Add SSH key按钮完成添加。

(4)测试ssh keys是否设置成功

使用命令ssh -T git@github.com 看到successfully表示ssh连接成功。如下图所示:

(5)打开github,选择ssh

(6)复制链接到git窗口 进行下载,命令为`git clone git@github.com:XXX/yyyy.git

其中:XXX为github的用户名,yyy为仓库名, 例如我要下载的库的地址是:git clone git@github.com:AweiLoveAndroid/MyDocs.git` 下载过程如图所示:


三、一些实用的git命令操作

(一)使用git克隆(下载)一个仓库或单个文件夹

注意:文件夹名可以随意写 ,仓库地址替换成你想要下载的仓库地址。

//新建仓库并进入文件夹
git init 文件夹名字 && cd test
//设置允许克隆子目录
git config core.sparsecheckout true
//设置要克隆的仓库的子目录路径   //空格别漏
echo '子路径名*' >> .git/info/sparse-checkout
//这里换成你要克隆的项目和库
git remote add origin 仓库地址
//下载
git pull origin master
(二)关于git config配置文件的增删改查命令:

查询

查询所有配置文件内容
git config --global --list

查询某个指定内容,例如 查询用户名
git config --global user.name

增加

增加一个用户名
git config  --global --add user.name jianan

删除

删除用户
git config  --global --unset user.name

修改

修改用户名
git config --global user.name jianan
(三)如何下载github某个单独目录(此方法也适用于gitlab 码云等工具)
  • (1)使用Git命令进行下载

比如我要在E盘,新建一个目录test,里面下载https://github.com/AweiLoveAndroid/CommonDevKnowledge这个项目里面的pic目录。

新建文件夹 test
mkdir test
​
打开test文件夹
cd test
​
初始化git
git init
​
将远程库加入到Git Config文件中。
git remote add -f origin https://github.com/AweiLoveAndroid/CommonDevKnowledge
 
在Config中允许使用Sparse Checkout模式:
git config core.sparsecheckout true

告诉Git哪些文件或者文件夹是你真正想Check Out的,你可以将它们作为一个列表保存在.git/info/sparse-checkout文件中。 
echo “pics” >> .git/info/sparse-checkout

从你想要的分支中将你的项目拉下来 例如这里是master分支:
git pull origin master
  • (2)结合svn进行下载

github上的每一个git版本库都可以使用svn来操作,而svn是支持部分检出的,所以我们可以使用svn来下载。如果没安装svn,需要先安装一下。

例如:我想下载我的git_demo项目的test目录

  • (1)在github上点开这个目录,例如:https://github.com/AWeiLoveAndroid/git_demo/tree/master/test
  • (2)将上面地址里的tree/master换成trunk,然后用svn co命令检出,具体操作示例如下:
    svn co https://github.com/AWeiLoveAndroid/git_demo/trunk/test
    如果下载了TortoiseSVN客户端,直接右键svn checkout,输入地址,确定就可以了。
  • (3) 如果不是master分支,而是其他分支,比如develop分支,比如:
    https://github.com/AWeiLoveAndroid/git_demo/tree/develop/test
    检出也是一样的道理,只要把刚才的地址改成/trunk/ 换成 /branches/develop/ 就行了。
    也就是https://github.com/AWeiLoveAndroid/git_demo/branches/develop/test
  • (4) 修改之后,如果你想提交代码到git仓库,可以使用svn ci命令提交到git仓库,输入自己github的用户名密码就可以提交到github了。

四、git使用中遇到的错误集锦

(一)git clone 下载速度0bytes 出现error: RPC failed; curl 18 transfer closed with outstanding read data

【原因:】由于Http协议错误,当Clone的时候,因为curl的postBuffer默认值太小的原因,而项目可能本身比较大,所以下载失败。

【解决方案:】
打开git命令行 输入 git config --global http.postBuffer 524288000,然后可以输入 git config --list 查看刚才的设置是否生效。

git config --global http.postBuffer 524288000 命令的意思:相当于把curl的postBuffer的值修改的大一些。524288000的单位是B,相当于500MB。

(二)git pull 报错:git - error: RPC failed; curl 18 transfer closed with outstanding read data remaining

报错信息:

fatal: The remote end hung up unexpectedly 
error: RPC failed; curl 18 transfer closed with outstanding read data remaining 
fatal: The remote end hung up unexpectedly 
fatal: early EOF 
fatal: index-pack failed

【原因:】

由于Http协议错误,当Clone的时候,因为curl的postBuffer默认值太小的原因,而项目可能本身比较大,所以下载失败。

【解决方案:】

打开git命令行 输入 git config --global http.postBuffer 524288000,然后可以输入 git config --list 查看刚才的设置是否生效。

(三)git push出现的错误,RPC failed; curl 56 SSL read: error:00000000:lib(0):func(0):reason(0), errno 10053
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
error: RPC failed; curl 56 SSL read: error:00000000:lib(0):func(0):reason(0), errno 10053

【原因分析:】

可能是上传的文件太大,缓存不够,默认只有1M。

【解决方案:】

打开git命令行 输入 git config --global http.postBuffer 524288000


到此,基本的github的使用基本讲完了,是不是很简单,不到半个小时就学会了,快去用起来吧。更多关于git的使用,请查看git官网的中文文档,点此进入→ https://git-scm.com/book/zh/v2

【原因:】由于Http协议错误,当Clone的时候,因为curl的postBuffer默认值太小的原因,而项目可能本身比较大,所以下载失败。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,633评论 18 139
  • 十天前我认识了一富士康工程师,对方以智慧的谈吐,干净的外表取得良好印象,第二次见面更是感觉超好…慢慢觉得一些差距对...
    sherry宏珊阅读 225评论 0 0
  • 有两天没有做乱语了,第一阶段刚开始欢快地跟着音乐哼了起来,到后面慢下来了,啊一哈之间的吟唱中切换,在想楼下路...
    紫莲阅读 246评论 0 0
  • 第一次看见流星,是和你一同走在校园的跑道上。寒冬腊月,看台冷清,那时你因为某个笑话还是某个八卦而拉着我说个不停,而...
    李北生阅读 342评论 0 2
  • 周日 想说能不能迟到一小时 朱老师说要请假 呵呵那我还不如请一个下午 真的感觉超不爽! 应该是因为不喜欢这份工作 ...
    角落蜷缩阅读 155评论 0 0