版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/3f12bd3ccf2a
转载请标明出处:
https://www.jianshu.com/p/3f12bd3ccf2a
本文出自 AWeiLoveAndroid的博客
目录:
一、入门必备知识
(一)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 --> 进入主页。
(4)个人主页的介绍。
(三)现在可以创建仓库试试看。
(1)点击+号,选择New repository
(2)创建仓库
(3)假如创建库的时候忘记了勾选README那个对勾,别着急,创建好了项目之后是这样的(关于各部分都是干嘛的,后文有讲解),看下图:
(4)添加README文档
(5)添加好了之后,就会显示仓库的详细信息了,如下图有详细的讲解:
另外那个添加关键字
的操作,由于步骤太多,不方便截图,我录制了一个gif,这里给大家看一下:
(6)回到主页,看看我们的库。
有3种方式回到首页:
-
1. 点击你的用户名,如图:
2. 点击右上角的头像 --> 选择 your profile --> 进入主页,其他的和
方法1
一样的。
-
3. 点击左上角的github的logo,然后在右边就可以看到你的所有的库。
(四)下载git客户端,clone并提交本地代码到仓库里面。
【注意事项:】要把 文件夹显示后缀名
,以及显示隐藏文件
这个打开。
(1)下载git客户端,打开百度,搜索一下git客户端,下载然后安装就可以了,认准git,别下错了。
选择电脑平台,如果是Windows,就点击Windows下载,如果是mac,点击Mac OS X下载。
【注意:】如果是windows平台,点击了Windows进去之后,会自动弹窗下载,建议取消,手动去选择win 32位或者64位的去下载,免得你32位的电脑却被下载了64位的git客户端。
最后就是安装了,这个选择一个路径,一直next就安装好了,安装好了之后会在桌面有个快键方式,如下图所示。
(2)使用git客户端下载github的库,就拿刚才那个Demo1来说吧,打开Demo1,点击绿色按钮,再点击小册子的那个图标,表示复制当前git仓库,如图所示。(如果你喜欢图形化界面,还可以安装一个TortoiseGit,这个不是我现在要讲解的重点,有兴趣的可以去百度一下怎么使用。)
【注意:】下方有两个另外下载的方式,左边那个是使用github客户端打开下载,右边那个是下载zip文件到本地。我以前没有安装git客户端的时候,想下载github的库都是选择下载zip到本地。
(3)在电脑上某一个英文路径下,右键-->选择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之间都有一个空格 别忘记了。
(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默认值太小的原因,而项目可能本身比较大,所以下载失败。