GitHub是为开发者提供的Git仓库的托管服务,这是一个让开发者与同事共享代码的场所。
GitHub和Git的区别,GitHub和Git是完全不同的两个东西,在Git中开发者将代码存入名为Git仓库的资料库中,并加以使用而GitHub则是在网络中提上提供Git仓库的一项服务。就是说GitHub上公开的代码都由Git进行管理。
(1)让开发者之间进行远程共同开发软件,这个功能就是Pull Request(拉取请求),是指开发者在本地对源代码进行更改后,向GitHub中托管的Git仓库中
(2)用户所有用文字输入的功能都可以用GitHub Flavored Markdown,开始有越来越多的服务兼容Markdown
Github这一服务为开源世界带来了社会化编程的概念,在Github出现之前只有一小部分人拥有改变源代码的权利,这些人掌握着开发的主导权,开发者往往需要花时间去说服这个特权阶级。Github让所有人都平等拥有修改代码的权利。同时Github还有一个最大的特征是面向人,不再像之前一样只针对项目。
Github的主要功能:
(1)Git仓库
(2)Organization(优点是可以统一管理和权限)
(3)Issue(是将一个任务或问题分配给Issue进行追踪和管理,即每当进行Pull Request就会创建一个Issue)
(4)wiki(任何人都可以随时保存一篇文章进行更改并保存)
(5)Pull Request (通过该功能向其他仓库提出申请请求合并,送出后目标仓库的管理者可以查看Pull Request的内容和及其包含的代码更改)
Git的仓库管理是GitHub的核心,Git属于分散型版本的管理系统,是为了版本管理而设计的软件,起因是Linux内核开发中使用的既有版本管理系统的开发方许可证发生了变化。为了更换新的版本管理系统才开发了Git。
版本管理就是管理更新的历史记录,并且版本管理系统分为集中型和分散型。
集中型:将仓库集中存放在服务器上,所以只存在一个仓库,将所有数据集中存放在服务器中,有便于管理的优点,但是一旦开发者所处的环境不能连接服务器,就无法获取最新的源代码,开发也就无法进行。万一服务器故障导致数据消失,开发者就会见不到最新的代码。
分散型:GitHub将仓库Fork给了每一个用户,就是将某一个特定仓库复制到自己的账户下,Fork出的仓库与原仓库是两个不同的仓库开发者可以随意编辑。
双方都有优缺点但是只要规则制定的好分散型也可以向集中型那样进行管理。
GitHub的必备知识,如“仓库”、“分支”、“提交代码”以及“请求代码合并”
一个仓库通常用来组织一个单独的项目。该仓库可以包含你项目中的所有文件,如文件夹、文件、图片、视频、电子表格、数据集等。我们建议包含一个README文件,或者你自定义的用来记录项目信息的文件。GitHub将默认在你创建仓库的时候添加它。在创建的同时还提供了权限许可选项。
第一步:创建一个新的仓库
- 在页面的最右上角,你的头像的左边,点击“+”,在弹出的下拉选项中选择“New repository”。
- 在仓库名称输入框中输入你的仓库名称:“hello-world”。
- 写一个简短的描述。
- 勾选“Initialize this repository with a README”
点击“Create repository”按钮,完成创建。
第二步:创建一个分支
分支是一个可以让你在同一时间工作在同一个仓库的不同版本的方法。
在你的仓库中会有一个默认的名叫“master”的主分支,该分支用来存储你最终确定的版本代码。我们用其他的子分支来进行编辑和更改,确定之后再提交到主分支。
当你从主分支创建出一个子分支的那一刻,其实你就是对当时时间点的主分支做了一个拷贝。如果之后别的分支的人对主分支做出了更新,在你提交到主分支之前,你必须先从主分支上拉取那些更新。
下面的图表将显示分支合作的整个流程:
主分支
一个新的命名为“feature”的子分支(因为我们正在这个分支上做开发)
“feature”分支合并到主分支之前的历程在GitHub上,我们的开发人员,编辑人员以及设计人员,分别在独立的分支上完成自己修改bug或功能编写的工作。当一个功能编写确定之后,他们就将自己的分支合并到主分支上。
新建一个子分支
- 进入你的“Test”仓库
- 点击文件列表上方的写着“branch: master”的下拉框
- 在输入框中输入新的分支名字“readme-edits”
- 点击下方蓝色背景的分支创建框或直接按键盘的“Enter”键
-
现在,你已经有了“master”和“readme-edits”两个分支了。他们看起来几乎一模一样,但是不要着急,接下来,我们将在我们新建的子分支上做出一些改变。
第三步:做出修改并提交
- 点击“README.md”文件,切换到“README.md”内容页面
- 点击编辑框右上角的铅笔按钮,进入编辑界面
- 在编辑框中,写一些你自己的信息
- 在下方的“提交更改”框中,输入你做出此次修改的备注说明
- 点击下方的“Commit changes”按钮
-
第四步:发出“请求代码合并”请求
现在你已经对你的新分支做出了修改,我们可以发出“请求代码合并”的请求。
请求代码合并是GitHub团队协作的核心功能。当你发出一个“请求代码合并”请求的时候,相当于你请求别人拷贝你当前的代码做出审查,审查通过之后将你的代码下载并且合并到他们的分支上。该请求将会在所有的分支上显示出不相同的部分。你做出的任何更改、增加以及减少,都会用绿色和红色显示出来。
在你的代码完成之前,你可以随时进行代码提交,发起请求代码合并的请求以及进行一场讨论。
你可以通过GitHub的“@”功能,在每次发出“请求代码合并”请求的时候,向特定的人或团队做出反馈,无论这个人是在你身边还是远在千里之外。
你可以向自己的仓库发出“请求代码合并”的请求,并且自己去合并他们。
为更改的README文件发出“请求代码合并”请求
第一步:点击“Pull Request”选项卡按钮,切换到请求代码合并页面,点击绿色的“New pull request”按钮
-
第二步:选择你创建的“readme-edits”分支,与主分支进行比较。
-
第三步:在对比页面查看这些更改,确定他们就是你想要提交的。
-
第四步:当你确定这些更改就是你所要的时候,点击绿色的“Create Pull Request”按钮。
-
第五步:为你的更改做一个简单的标题和描述。
-
当你写完备注描述之后,点击“Create pull request”按钮。
提示:你可以使用emoji表情或者拖拽图片到评论窗口进行评论。
第五步:合并你的“请求代码合并”请求
这是整个过程的最后一步,是时候将你在子分支“readme-edits”做出的更改合并到主分支“master”上了。
- 点击绿色的“Merge pull request”按钮,将这些修改合并到主分支
- 点击“Confirm merge”按钮
-
- 由于这个分支的更改已经被合并了,所以我们还需要点击紫色框中的“Delete branch”按钮,删除这个分支
安装Git for Windows
Git下载地址 :https://git-scm.com/downloads 进入后点击Download下载,如下图所示
.进入后选择自己对应的操作系统下载(32位或64位),如下图所示
下载好了后,打开下载好的文件进行安装
然后到如下图界面(默认即可)
点击Next下一步,到如下图界面,配置git环境,选择第一项
下面都是选择默认即可
点击Finish 完成安装
git原理简介
仓库:本地仓库和远程仓库(托管在网络端的仓库)
本地仓库:工作区丶版本区,其中版本区包含暂存区丶仓库区
从本地仓库将文件git到远程仓库流程:工作区----> 暂存区 ----> 仓库区 ----> 远程仓库
创建项目的SSH Key,在桌面打开Git Bash快捷方式,或者是桌面右击选择Git Bash Here
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上注册时的邮箱 ) 如下图配置用户名以及邮箱
如下图创建SSH Key,在终端输入 cd ~/.ssh 回车(进不进入.ssh目录无所谓)
检查配置是否成功
创建完成后,在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人
登录github注册或登录账号,打开“settings”的“SSH Keys”页面,然后,点“New SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,点“Add Key”,你就应该看到已经添加的Key
如果当前目录不是~/.ssh目录,就输入cd ~/.ssh,然后ls 查看当前目录下的文件
将GitHub上的项目,克隆到本地一份
复制仓库的HTTP 地址
进入C盘,在C盘下新建GitHub_test文件夹,将GitHub上的test仓库克隆到该文件夹目录下
克隆成功
进入该仓库就会显示(master分支)
将本地文件git到GitHub远程仓库
在GitHub_test目录下创建test2文件夹,该文件夹下创建一个test.txt文件,在test.txt文件内容中输入 hello github(用于测试)
如下图(git remote add origin 你的GitHub仓库的HTTPS地址或者是SSH地址,此时在test2目录下会有远程仓库上的README.md文件
将创建好的test.txt文件通过下图方式提交到远程仓库GitHub上
在执行git add test.txt 将工作区文件添加到暂存区,报错如下
解决方法:是因为unix系统与windows系统跨平台问题导致,执行git config core.autocrlf false后,再提交就不会报错了。
当执行git push origin master会出现登录验证(只有第一次会出现此验证),输入你GitHub账号和密码点击登录即可,然后出现提交成功
回到GitHub上,刷新仓库,会发现我们提交的test.txt文件已经成功git到远程仓库中了
心得:github网页版的操作看看教程就可以了,因为git是github的核心,所以我又学习了如何将github上的文件克隆到本地以及将本地文件git到github远程仓库上。有了git使用github会更加方便。