文章目录
前言
在Github上,可以管理自己的项目,也可以参与别人的项目做贡献,当然你也可以做一名愉快地Code搬运工。
初学者疑惑:
1)Git和Github的关系?
2)如何上传并管理自己的项目?
3)如何搜索项目并下载?
4)如何参与别人的项目,做贡献?
该文逐一总结,让你快速入门。
一、Github简介
起源
“我是个自负的混蛋,所以我的项目都以我自己的名字命名,先有Linux,现在是Git”
-------Linus
- Git是一个版本控制系统,Github是一个基于Git的项目托管平台,并提供一个web网站。
- Github的独特之处在于,可以复制别人的项目到我们的账号(也称拉分支)简易。
- 也即,为一个项目贡献代码,只需三步:
1)通过项目站点的Fork按钮复制该项目;
2)将修改加入到该分支;
3)通过pull request向项目负责人申请合并。- 注:从主库中复制出来的每一个库都可以独立使用,任何两个库之间的不一致都可以合并。
Github上有什么?能做什么?
1)有丰富的
学习资源
;
2)有著名的开源项目代码
;
3)可以渲染自己的简历
;
4)可以搭建自己的个人博客网站
。
大佬主页
Linus Torvalds— —Linux 之父 。>>GitHub 主页:torvalds - Overview
John Resig— — jQuery 创始人,著《Pro JavaScript Techniques》(即《精通JavaScript》)>>Github主页: jeresig -Overview
Jake Wharton— — Android 之神。 >>Github主页: JakeWharton -Overview开源项目及公司
项目
Linux:torvalds/linux
Swift:apple/swift
Ruby:ruby/ruby
公司
Google: Google
Microsoft:Microsoft
Alibaba:Alibaba
相比于svn等工具来说优势如下:
- github它体现了互联网时代的开源文化。
- 目前github已经是全球开源项目最大的托管平台。
- 大多项目都可在github上找到别人已经开发的项目源码进行参考。
- 建私人仓库需付费,普通用户只能使用公共仓库(及代码公开)。
二、注册登录
Github官网:https://www.github.com
注意事项:
由于
你的项目地址以及搭建个人博客地址由你的用户名组成,因此
起具有标识性的用户名;- 私有仓库收费,普通用户一般创建公开仓库;
1.GitHub 主页介绍
个人主页
修改个人信息
2.创建 GitHub 仓库
3.GitHub 术语解释
相关术语:
Repository: 可以理解为"仓库
",项目存放于仓库中,一般一个仓库对应一个项目。
Issues: 可以理解为"问题
",对于我们开源项目的bug或有待改进的地方,别人可以提出Issues,等问题解决之后可以关闭这些Issues。同样我们也可以给他人项目提出Issues。
Star: 可以理解为“点赞
”,对于优秀的项目可以点赞收藏。一个项目点星数越高,该项目越好。
Fork: 可以理解为“拉分支
”,若对感兴趣的项目想开发并添加功能,我们可以Fork这个项目,即复制该项目到我们的账号,而且独立于原项目,可独立开发。
Pull Request: 可以理解为“提交请求
”,在Fork基础上,修改后我们可以对原项目拥有者提出一个Pull请求,审核通过后,我们的修改内容就可以合并到原项目之中,这时我们就成了该项目的贡献者。
Merge: 可以理解为“合并
”,当别人Fork了我们的项目对其修改,并提出Pull请求,我们可以审核,如果内容满足我们的要求,就可以将其合并到我们的项目中。
Watch: 可以理解为"观察
",如果我们watch了一个项目,日后该项目的任何更新我们都会收到通知。
三、Git 的安装及使用
Github是基于版本控制系统Git的,因此想要实现Web端与本地仓库的链接,需要学会git工具。
Git官网:https://git-scm.com/
在Git官网,点击 Downloads进入如下界面:并选择对应的操作系统下载(如64位)。
安装过程,可更改默认的安装路径C:\Program Files\Git。其他选择默认即可。
安装完成后,开始菜单选择“Git Bash”,打开命令窗口
输入命令git,显示如下信息,则Git准备就绪。
1.Git 常用命令
介绍Git命令操作,如init、add等,在Git中所以命令都是以git开头的,如git init指的是初始化一个Git仓库。
首先,在本地新建一个文件夹用来存放今后的所有仓库,如D:\GitHubRepository。再新建一个Demo目录作为一个仓库,在仓库内新建一个text.txt的文件作为仓库内容。接下来我们通过git命令,将该Demo仓库及.txt文件上传至我们的Github。
选择Demo目录右键,选择Git Bash here,即可进入命令行窗口。如图,Git会自动定位到进入的位置。
相关命令的使用
-
git status
输入git status 命令,查看仓库状态:
如上图,结果显示Demo不是一个Git仓库。因为我们还没有申明Demo是一个Git仓库。 -
git init
输入git init 命令,初始化Git仓库:
如上图,结果显示初始化的Demo为一个空的Git仓库,我们在Demo中创建了text.txt文件,那么为什么会提示空呢,稍后解惑。我们再次查看仓库状态:
如上图,我们初始化仓库后,Demo已经成为了一个Git仓库,并默认进入了仓库的master分支,即主分支。
注意:Untracked files提示,Demo仓库有一个文件没被追踪,文件为text.txt,还提示我们可以使用git add命令添加该文件。 -
git add
输入git add text.txt命令,将该文件添加到仓库。然后查看仓库状态:
如上图显示,Committed表示已添加到Git仓库,但是并没有正真提交到仓库。 -
git commit
输入git commit -m "text commit"命令,将.txt文件提交到Git仓库。
如同所示,text commit表示已提交,-m表示提交信息,内容写在“”内。继续查看仓库状态,提示:已没有内容可提交。 -
git log
输入git log ,打印Git仓库提交日志:结果显示提交作者、日期信息。
2.利用 SSH 完成 Git 与 GitHub 的绑定
现在,我们已经了解了Github创建仓库,Clone or download克隆或下载代码,以及git的一些命令。
但是,Github和git两者并未绑定,还不能通过git向Github提交代码。在Github上一般都是通过SSH来授权,首先在Github上添加SSH key。
第1步.:生成SSH key
Windows系统默认不安装SSH,但是安装了Git Bash自带了SSH。可以在Git Bash中输入ssh命令查看。
接下来,输入ssh-keygen -t rsa 命令,表示指定RSA算法生成密钥,然后三次回车,不需要输入密码,之后会生成两个文件,分别为id_rsa和id_rsa.pub,即密钥和公钥。其默认路径为:
Windows 系统:C:\Documents and Settings\username\.ssh
然后将公钥id_rsa.pub的内容添加到Github,这样本地的密钥id_rsa和Github的公钥进行匹配授权后,就可以向Github提交代码了。
第2步.:添加SSH key
第3步.:验证绑定是否成功
在Git Bash 中输入ssh -T git@github.com进行测试:显示Git与Github绑定成功。
3.通过 Git 将代码提交到 GitHub
两个命令:Push和Pull
Push:直译”推“的意思,如果本地的代码有了更新,为保持本地与远程代码同步,我们需要把本地的代码推到远程仓库,命令如下:
git push origin main
Pull:直译”拉“的意思,如果远程仓库的代码有了更新,同样为了保持本地同步,我们需要把远程的代码拉到本地,命令如下:
git pull origin main
此时,之前说到的pull request就好理解了,它表示:如果我们Fork了别人的项目并对其修改后,想要把我们的代码合并到原项目中,我们需要提交一个pull request,意思是让原作者拉取一个请求,即把我们的代码拉到他的项目中。
注:一般先pull项目到本地,完成代码后再push到远程。
提交代码
向远程仓库提交代码,两种情况:
第一种:本地没有Git仓库,我们可以直接从Github仓库clone到本地,本地无需初始化仓库,且自动关联远程仓库。我们只需要在这个仓库进行修改,然后提交。
复制Github中需要clone的项目地址链接,然后在本地准备存储的目录下D:\GitHubRepository,进入Git Bash:
输入命令:git clone https://github.com/Jomaron/EGG-Learning.git
在本地查看:已下载项目及内容README.md文件。我们在本地继续添加新代码文件,并上传到远程。
通过git status查看,该仓库有两个新文件Text.txt和src未上传至远程。
通过git add命令添加,通过git commit -m "commit "提交。
如上图,已将两个文件add并commit到仓库。输入git log命令查看提交日志,并查看仓库状态:
接下来,将本地仓库内容push到远程仓库,输入git push origin main命令:
刷新Github页面,显示文件已经上传。
以上介绍了向 GitHub 提交代码时的第一种情况,即:
第一种:当本地没有仓库时,我们通过Github上的项目链接,将远程仓库clone到本地,clone命令默认创建Git仓库,因此无需init初始化,且自动关联远程仓库。我们只需要在本地修改、添加、然后提交,最后push到远程仓库进行同步。
第二种:本地有 Git 仓库,并且我们已经进行了多次commit操作。
四、总结
强调:在我们向远程仓库提交代码的时候,一定要先进行pull操作,再进行push操作,防止本地仓库与远程仓库不同步导致冲突的问题。
参考:
1.还不会使用 GitHub ? GitHub 教程来了!万字图文详解
2.提高国内访问 Github 速度的 9 种方法
3.史上最简单的 GitHub 教程