软件工程综合实践专题作业——介绍github
一.什么是 Github?
github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。
Github 由Chris Wanstrath, PJ Hyett 与Tom Preston-Werner三位开发者在2008年4月创办。迄今拥有59名全职员工,主要提供基于git的版本托管服务。
维基百科的描述:
今天,GitHub已是:
一个拥有143万开发者的社区。其中不乏Linux发明者Torvalds这样的顶级黑客,以及Rails创始人DHH这样的年轻极客。
这个星球上最流行的开源托管服务。目前已托管431万git项目,不仅越来越多知名开源项目迁入GitHub,比如Ruby on Rails、jQuery、Ruby、Erlang/OTP;近三年流行的开源库往往在GitHub首发,例如:BootStrap、Node.js、CoffeScript等。
alexa全球排名414的网站。
二.安装Git for Windows
1.Git下载地址 :https://git-scm.com/downloads 进入后点击Download下载,如下图所示
2.进入后选择自己对应的操作系统下载(32位或64位),如下图所示
3.下载好了后,打开下载好的文件进行安装
4.然后到如下图界面(默认即可)
5.点击Next下一步,到如下图界面,配置git环境,选择第一项
6.下面都是选择默认即可
7.点击Finish 完成安装
8.安装完成后,在桌面会有Git Bash快捷方式,以及桌面空白处右击出现Git命令,如下图
三.注册GitHub账号
简单的输入一下用户名、邮箱地址、密码点击创建即可,进入下一步
上面的信息简单的填写一下即可,点击进入下一步
填写一些简单的组织信息,点击下一步
点击“Finish”,到这里我们的GitHub账号就注册完成了
四.Git之git使用
1.git原理简介
仓库:本地仓库和远程仓库(托管在网络端的仓库)
本地仓库:工作区丶版本区,其中版本区包含暂存区丶仓库区
从本地仓库将文件git到远程仓库流程:工作区----> 暂存区 ----> 仓库区 ----> 远程仓库
2.创建项目的SSH Key,在桌面打开Git Bash快捷方式,或者是桌面右击选择Git Bash Here,如下图
出现命令窗口
@前是计算机用户名,
@后是计算机名,
MINGW64表示正在运行的Git Bash的信息
a>配置用户名:git config --global user.name (github上注册的用户名)
b>配置用户邮箱:git config --global user.email (GitHub上注册时的邮箱)
c>在Git终端在输入ssh-keygen -t rsa -C "youremail@example.com" ( GitHub上注册时的邮箱 )
输入
git config --global user.name "yourusername"
git config --global user.email "youremail@example.com"
ssh-keygen -t rsa -C "youremail@example.com"
如下图配置用户名以及邮箱,并查看配置是否成功
如下图创建SSH Key,在终端输入 cd ~/.ssh 回车(进不进入.ssh目录无所谓)
创建完成后,在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人
3.登录github注册或登录账号,打开“settings”的“SSH Keys”页面,然后,点“New SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,点“Add Key”,你就应该看到已经添加的Key
a>说明:如果当前目录不是~/.ssh目录,就输入cd ~/.ssh,然后ls 查看当前目录下的文件,vi id_rsa.pub,打开文件,选中内容右击点击Copy
b>登录你的GitHub,添加SSH Key
c>创建成功
4.将GitHub上的项目,克隆到本地一份
a>新建一个仓库(test)
b>复制仓库的HTTP 地址
c>进入C盘,在C盘下新建GitHub_test文件夹,将GitHub上的test仓库克隆到该文件夹目录下
d>克隆成功
e>进入该仓库就会显示(master分支)
5.将本地文件git到GitHub远程仓库
a>在GitHub_test目录下创建test2文件夹,该文件夹下创建一个test.txt文件,在test.txt文件内容中输入 hello github(用于测试)
b>如下图(git remote add origin 你的GitHub仓库的HTTPS地址或者是SSH地址,步骤4所示的地址),此时在test2目录下会有远程仓库上的README.md文件
c>将创建好的test.txt文件通过下图方式提交到远程仓库GitHub上(执行git add test.txt如果报错,请查看最下面的解决方法)
d>当执行git push origin master会出现登录验证(只有第一次会出现此验证),输入你GitHub账号和密码点击登录即可,然后出现提交成功
e>回到GitHub上,刷新仓库,会发现我们提交的test.txt文件已经成功git到远程仓库中了
五.创建一个工程
在浏览器打开Github在上边建立一个Repository:
Repository 需要填写的内容:
Repository 创建完成的大致效果:
创建Repository 成功之后,我们就可以进行git 的使用了。
第一种方法
进入本地磁盘
第一你需要进入一个working dir,我这里将放置在E盘的根目录,使用的指令为:
1 #cd 就是进入这个目录的意思2 cd e:
运行后的效果如下:
clone Repository
第二你需要将Guihub 中的Repository 下载到本地磁盘中,这里是E盘,使用的指令为:
1 # clone(下载)Github Repository到本地E:\first2 #yourName:Github用户名3 Git clone https://github.com/yourName/first.git
运行的效果如下:
执行完后,E盘下就会多出一个first目录(E:\first),默认这个目录名称和我们Github上创建的项目名称一致,当然假如你希望捡出后的根目录不想叫first,想叫second,执行命令:
1 #clone Repository 到E:\second2 git clone https://github.com/yourName/first.git second
执行完成后,我们就看到E盘下会新建一个second的目录(E:\second)。
添加文件到Index 中
在first根目录下,新建一个1.txt文件(E:\first\1.txt),然后写入一段文本:
1 Hello Github!
执行命令:
1 #将1.txt 提交到Index2 git add 1.txt
运行的效果如下:
查看working dir 与Index 的不同
使用指令:
1 git status
可以看到新增到Index中的文件1.txt,运行效果如下:
提交文件到Head
使用指令:
1 #提交Index 中的文件到Head 并添加备注“myfirst"2 git commit –m ”myfirst”
运行的效果如下:
查看working dir 与Head 的不同
使用指令:
1 git status
比较的结果如下所示:
假设此时你在Working dir(E:\first)中添加一个文件2.txt,再对比Working dir 与Head 中文件的差别结果如下:
文件推送到Github
使用指令:
1 #将Head 的文件push 到Github 服务器中2 #master:是Repository的主分支3 #每一个新建的Repository 都有一个默认的master分支4 git push origin master
注意:完成以上步骤之后你就可以向Github 服务器push 文件了,但是每次push 时都会要求你输入密码,如果你不想那么麻烦,那么你可以使用指令:
1 #缓存你的账户信息,这样就不需要每次都输入账号了2 git config --global credential.helper wincred
运行的效果如下:
第二种方法
生成ssh key
首先我们需要生成ssh key,使用指令:
1 #其中引号内是你的Github 登录邮箱2 ssh-keygen -t rsa -C "your_email@youremail.com"
Key 的保存目录不建议更改,所以我们一般是直接按三下Enter 键会生成以下的界面:
添加ssh key到Github 帐户
复制ssh key,使用指令:
1 #其中的“~”是系统默认的路径2 #我的电脑的路径是C:\Users\Administrator。3 clip < ~/.ssh/id_rsa.pub
指令的运行效果如下所示:
没有提示就表示已经成功了。你也可以选择到目录C:\Users\Administrator\.ssh,这个目录因电脑也不同,你可以根据图14的红线画出的目录去找到(使用记事本打开),复制其中的所有内容。
在浏览器在登录你的Github,进行设置,如下图所示:
点击SSH keys:
点击Add SSH key:
输入ssh key:
为了确保一切工作,使用以下指令测试ssh key 是否工作:
1 #测试ssh key 是否工作2 ssh –T git@github.com
如果在创建ssh key时设置了密码,那么这里你会被要求输入密码(图14的内容)。 我这里并没有设置密码,输入“yes”,出现红线画出的提示语句则说明你成功了。
运行的效果如下所示:
配置Git
这里我将在使用e:\first 作为Working dir,使用创建Repository 的指令:
1 #初始化一个本地Repository2 git init
会产生一个隐藏文件夹.git。
网络上有许许多多的教程都使用到了以下的语句:
1 git config --global user.name “your name”
2 git config –-global user.email “your_email@youemail.com”
他们都没有说明白为什么需要使用,Github 帮助文档关于user.name,关于user.email。我这里来个总结性的说明:这两名的主要作用是告诉Github 对这个文档进行修改的名字是什么。
1. 没有使用这两条指令,那么push 到Github 的用户名将会是你的邮箱地址,应该是你在ssh key 中设置的邮箱地址
2. 如果你只设置了user.name那么Github 将会使用你的用户名作为修改者的名字
3. 如果你只设置了user.email 那么Github 会根据你提供的邮箱地址查找你在Github 上的用户名修改者的名字,如果没有查找到则使用你设置的user.name
4. 如果两个都设置,将会优先根据你提供的邮箱地址查找你在Github 上的用户名作为修改者的名字,如果没有查找到则使用你提供的user.name
这里我只设置提交者的名称:
因为这里我们并没有clone Github 上的Repository 到本地Working dir,所以我们需要将我本地的Repository 连接到远程Github 服务器,使用如下指令:
1 #将我本地的Repository 连接到远程Github 服务器2 yourName:你Github 的用户名3 yourRepo.git:你Github 上的Repository4 git remote add origin git@github.com:yourName/yourRepo.git
在其他的博客中我们经常会看到另外一种连接的指令:
那么这两个有什么区别呢?第一个链接是基于HTTPS 形式的, 而第二个链接是基于SSH 形式的,
这里必须使用SSH 形式的,如果使用HTTPS 你照样需要每次push 都需要输入账号与密码。
运行的效果如下所示:
注意:如果你之前已经连接到了Github 服务器,那么运行后会出现如下的错误:
此时有两种的解决办法,第一种方法:
接着你再连接就能得到上上图的效果。
第二种比较高端的作法,运行指令:
1 #USERNAME:Github 用户名 2 #OTHERREPOSITORY:Github 上的Repository3 git remote set-url origin https://github.com/USERNAME/OTHERREPOSITORY.git
运行的效果如下所示:
你可以输入指令:
1 #查看你现在连接的Github 服务器地址2 git remote –v
运行的效果如下:
pull、push
由于我使用的Github Repository 是已经添加过文件的(不是新建的),所以需要先将Github 上的文件下载到本地Repository,要不然是无法将本地的文件push 到Github 的。如果你是新建的Repository 就可以跳过这个过程。使用指令:
1 # 将master 分支中的文件下载到本地Repository 中2 git pull origin master
运行的效果如下:
为了演示,我创建一个新的文件:2.txt,并添加内容“good learner”到文件中。使用指令:
1 # 创建一个文件2.txt2 touch 2.txt3 #输入"good learner"到文件2.txt 中4 echo ‘good learner’> 2.txt
运行的效果如下:
我们需要先将文件提交到Head中,使用指令:
1 #提交文件到Index 2 git add 2.txt3 # 提交文件到Head并添加备注”first"4 git commit -m “first”
运行的效果如下所示:
现在我们就可以将内容push 到Github 服务器中了,使用指令:
1 git push origin master
运行的效果如下所示:
我们再到Github 网站上去看看:
六、参与GitHub中其它开源项目
1.我们一直用GitHub作为免费的远程仓库,当然如果可以的话你也可以付费
如果是自己的开源项目,放到GitHub上是完全没有问题的。其实GitHub还是一个开源协作社区,通过GitHub既可以让别人参与你的开源项目,也可以参与别人的开源项目。
那么我们如何参与一个开源项目呢?比如人气极高的jquery框架,你可以访问它的项目主页https://github.com/jquery/jquery,点“Fork”就在自己的账号下克隆了一个jquery仓库,然后,从自己的账号下clone。
如下图:
2.点击右上脚的“fork”即可,如下图:
3.下面我们克隆一份到本地
大家可以看到文件比较多,克隆需要一段时间请大家耐心等吧,注意的是clone仓库一定要从自己的账号下克隆,这样你才能推送修改。
如果从jquery的作者的仓库地址git@github.com:jquery/jquery.git克隆,因为没有权限,你将不能推送修改。如果你想修复jquery的一个bug或者新增一个功能,我想说你现在就可以开始开发了,开发完成后往自己的仓库推送。
如果你希望jquery的官方库能接受你的修改,你就可以在GitHub上发起一个pull request。当然,官方是否接受你的pull request就不一定了。
参考:
https://www.cnblogs.com/r360/p/4931432.html
https://blog.csdn.net/Hanani_Jia/article/details/77950594