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

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

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

6098829-2a646a4b32895ca2.png
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基础能学得会么?

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

6098829-606136d399a2593d.png
↑ 上图是点击 翻译页面

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


6098829-d8b31d7768fdd37d.png
↑ 上图是 原英文版的页面
6098829-d07ff6607d5f77e5.png
↑ 上图是 翻译之后的中文页面

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

      2.需要翻墙吗?

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

二、开始github之旅

(一)注册Github

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

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

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

6098829-3672f578d791bf36.png
↑ 登陆界面详解

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

6098829-7b1463da0306db5c.png
↑ 导航栏的组成

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

6098829-af561baceccd59fa.png
↑ 点击your profile 进入主页

(4)个人主页的介绍。

6098829-696cbbf70865ff29.png
↑ 个人主页的介绍
(三)现在可以创建仓库试试看。

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

6098829-ea22cf5c398386c5.png
点击 + 号,新建仓库

(2)创建仓库

6098829-d601fa8cc4c03f10.png
创建仓库

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

6098829-d4f259fd28908af6.png
添加README文档

(4)添加README文档

6098829-38befbc11c42f88b.png
添加README文档

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


6098829-4970cd1c3579557b.png
仓库的详细讲解

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

6098829-7214b6e674b3b733.gif
github给仓库添加关键字.gif

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

有3种方式回到首页:

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

    6098829-00bbd5ad7c374ac8.png
    方式1

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

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

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

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

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

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

6098829-9bdfcacb19eca213.png
选择平台

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

6098829-e2a48865f4a4468d.png
手动选择32位还是64位下载

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


6098829-7811a4e2878b6f00.png
git快捷键

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

6098829-52488b91ce22beea.png
image.png

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

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

6098829-0698843cb0e784f4.png
右键选择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之间都有一个空格 别忘记了。

6098829-eb9019e267021efd.png
使用clone命令下载仓库

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

6098829-3b4334e7a8db0d29.png
新增文件

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

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

如图:


6098829-58fc5e4fa62a30ad.png
上传到仓库

(8)更新本地仓库。

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

6098829-d5af530a9f2fab31.png
更新电脑里面的文件夹

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

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

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

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

如下图所示:

6098829-412b38f614468c4b.png

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

6098829-4d85d8d16f288119.png

(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按钮完成添加。

6098829-b7f5395ef88ba6cb.png

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

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

6098829-34a465193844f0df.png

(5)打开github,选择ssh

6098829-95ed290c035eb73b.png

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

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

6098829-a4528652f5305df0.png

三、一些实用的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默认值太小的原因,而项目可能本身比较大,所以下载失败。


6098829-ec114f8ca7d16bcc.png
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AWeiLoveAndroid

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值