软件工程综合实践专题作业——介绍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首发,例如:BootStrapNode.jsCoffeScript等。

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 "[email protected]" ( GitHub上注册时的邮箱 )

输入

git config --global user.name "yourusername"

git config --global user.email "[email protected]"

ssh-keygen -t rsa -C "[email protected]"

如下图配置用户名以及邮箱,并查看配置是否成功

 

如下图创建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 "[email protected]

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 [email protected]

如果在创建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 “[email protected]

他们都没有说明白为什么需要使用,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 [email protected]: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的作者的仓库地址[email protected]: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

猜你喜欢

转载自www.cnblogs.com/bylx35/p/10899100.html