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

96
AWeiLoveAndroid 595a1b60 08f6 4beb 998f 2bf55e230555
1.3 2017.12.19 13:00* 字数 3413

版权声明:本文为博主原创文章,未经博主允许不得转载。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默认值太小的原因,而项目可能本身比较大,所以下载失败。


开发工具
开发工具
3.9万字 · 8.0万阅读 · 233人关注
开发工具的全面总结,工具使用,工具之间的对比,还有填坑指南,这里都有详细讲解,希望能给各位IT开发人员提供帮助。
Web note ad 1