1. 基本概念
GitHub
GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。
仓库(repository)
repository:用来存放项目代码,每个项目对应一个仓库,多个开源项目则有多个仓库。私有仓库只能自己或者指定的朋友才有权限操作(私有仓库是收费的)
收藏(star)
收藏项目,方便下次查看。
复制克隆项目(fork)
该fork的项目是独立存在的。
发起请求(pull request)
发起请求(pull request) -> 等待查看 -> 合并。
步骤:
fork项目->修改自己仓库的代码->发起pull request->等待原作者操作审核合并(merge)。
关注(watch):
当项目更新可以接收到通知。
事务卡片(issue)
发现代码bug,但是目前没有成型代码,需要讨论时使用。用于提交使用问题或者建议或者想法。
步骤:
点击Issues按钮,点击new issue按钮新建事务。输入标题和bug描述。对方收到通知后点击issue可以对此进行回复。issue下的open和closed7按钮可以显示打开或者关闭的issue。
2. GitHub操作
GitHub官网:
官方网址:https://github.com
新建仓库
在GitHub主页点击【Start a Project】开始新建仓库。
- 如图2.1所示输入仓库相关信息:
- 创建ssh密钥:
使用命令ssh-keygen -t rsa -C 1111@qq.com(ssh-keygen -t rsa -C + 您的邮箱),该语句执行后在用户名目录下的.ssh文件夹下有一个id_rsa.pub文件,如图所示:
在远程仓库处新建SSH key,如图所示:
仓库管理
点击仓库名称可以进入仓库主页对仓库进行管理,如添加、删除、修改文件等。
新建文件
如图所示点击新建文件:
然后输入文件名(加上后缀)和文件内容,别忘了编辑添加文件的描述,如图所示:
文件操作
如图所示对文件的操作:
3. git的使用
使用git的目的:
通过git管理GitHub托管项目代码。
git的工作流程:
git工作区域:
- git仓库:最终确定的文件保存到仓库,成为一个新的版本,并对他人可见。
- 暂存区:暂存已经修改的文件最后统一提交到git仓库中。
- 工作区:添加、编辑、修改文件等动作。
操作:
- 使用命令git status可以查看文件的状态,是在工作区还是在暂存区还是在git仓库。
- 使用命令git add hello.php(git add+文件名)将文件hello.php提交到暂存区。
- 再使用git status查看文件状态。使用git commit -m "提交描述"将文件hello.php保存到git仓库。
- 再使用git status查看文件状态。
如图所示:
基本信息设置
- 设置用户名: git config --global user.name ‘zixiaoshuixin’(git config --global user.name ‘您的用户名’)
- 设置用户名邮箱: git config --global user.email ‘111@qq.com’(git config --global user.email ‘您的邮箱’)
该设置在GitHub仓库主页显示谁提交了该文件。
初始化一个新的仓库:
初始化一个新的仓库的步骤:
- 创建一个新的文件夹test。
- 在文件内初始化git(创建git仓库); 使用命令git init(之后在test文件夹内会出现.git文件)
- 向仓库添加文件:
使用命令touch demo.html也可以添加文件(或者直接创建文件demo.php) - 依次使用git add demo.html和git commit -m "demo.html描述"将文件保存到git仓库。
如图所示:
编辑文件
-
命令ls打开可以修改为文件。
-
通过命令vi demo.html修改文件。
-
编辑文件内容。
-
输入:wq保存并退出,如图所示:
-
依次使用git add demo.html和git commit -m "demo.html描述"将文件保存到git仓库,如图所示:
-
关联远程仓库:
使用命令git remote add origin https://github.com/zixiaoshuixin/test.git关联自己的远程仓库。(git remote add origin + 远程仓库地址)
在这一步时如果出现错误:
fatal:remote origin already exists则先使用命令git remote rm origin再使用命令git remote add origin + 远程仓库地址。 -
使用命令 git push 将其提交到远程仓库,如图所示:
删除仓库文件:
- 删除文件:使用命令rm -rf test.txt删除test.txt文件。
- 从工作区中删除:rm test.txt
- 从git仓库中删除文件:git rm test.txt
- 提交操作:git commit -m “删除文件test.txt”
如图所示删除文件test.txt:
查看提交日志
方式一:使用命令git log(会有分屏效果,不建议使用)
方式二:使用命令git log --pretty=oneline
方式三:使用命令git log --oneline
方式四:使用命令git reflog(多了信息:HEAD@{数字},数字表示指针回到这个历史版本需要走多少步)
如图所示:
前进或者后退历史版本
- 使用命令git reset --hard 107be48(git reset --hard +索引号)
注:hard参数表示本地仓库的指针移动的同时,重置暂存区和工作区。 - 使用命令git reset --mixed 107be48时,本地仓库的指针移动的同时,重置暂存区,但工作区的内容不会被重置。
- 使用命令git reset --soft 107be48时,本地仓库的指针移动的同时,暂存区和工作区的内容都不会被重置。
如图所示:
工作区和暂存区不一致
更改工作区中文件内容导致工作区和暂存区不一致时:
- 使用命令 git diff test.txt(git diff + 文件名)将工作区和暂存区的文件进行比对。
- 使用命令 git diff 可将工作区和暂存区的所有文件进行比对。
- 使用命令 git diff HEAD + 文件名 可将本地仓库和暂存区的文件进行比对。
- 使用命令 git diff +历史版本索引+ 文件名 可将历史版本的工作区和暂存区的文件进行比对。(注意:git是按照行为单位管理数据。)
验证是否使用git init初始化
先后使用命令 git config --list和git config命令查看是否使用git init初试化。
分支:
在版本控制过程中,使用多条线同时推进多个任务。这里所说的多条线就是多个分支。
-
一个新的独立的功能,要开辟一个分支。不同分支互不影响,齐头并进,最终将多个分支合并到主分支。
-
合并到主分支后若还要继续修改,则在合并后的主分支上在创建一个分支,形成最终版本后再次合并到主分支上。
分支的好处: -
同时多个分支可以并行开发,互相不耽误,互不影响,提高开发效率。
如果有一个分支功能开发失败,直接删除这个分支就可以了,不会对其他分支产生任何影响。 -
操作:
使用命令git branch -v查看所有分支,显示有*的分支为当前所在分支。
使用命令git branch branch01(git branch +分支名称) 创建分支名称。
使用命令git checkout branch01切换分支。
如图所示:
-
将分支 branch01合并到主分支。
首先进入主分支,使用命令git merge branch01(git merge + 分支名称)合并分支。 -
分支合并时遇到的冲突问题:
在同一个文件的同一个位置修改不同内容。 -
解决冲突:
公司内部协议解决或者自己决定,认为决定,留下想要的即可。
4. GitHub pages搭建网站
创建个人站点步骤:
- 新建仓库(注:仓库名必须是 【用户名.github.io】)
- 在仓库下新建index.html的文件即可。
如图所示:
- 访问
访问网址:http://用户名.github.io
如图所示:
注意:
GitHub pages仅支持静态网页。
仓库里面只能是.html文件。
project pages项目站点
搭建步骤:
- 进入项目主页,点击settings。
- 在settings界面点击【launch automatic page generator】来自动生成主题页面。
- 新建站点基础信息设置:输入项目名称、项目描述;点击【continue】按钮。
- 选择主题。
- 点击【publish page】生成网页。
- 访问:http://用户名.github.io/仓库名。