目录
01.了解GitHub(网站)和Git(版本管理工具)
1.1.GitHub网站介绍
- Github是全球最大的代码托管
网站
- 网址:https://github.com/
- 我们也可以把自己的代码托管到github仓库
1.2.Git版本管理工具介绍
- Git是一个免费、开源的
版本控制软件
- 什么是版本控制?
版本控制:是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况得系统。 - 版本控制软件的具体功能:
- 协同修改
多人并行不悖
的修改服务器端的同一个文件。 - 数据备份
不仅保存目录和文件的当前状态
, 还能够保存每一个提交过的历史状态
。 - 版本管理
在保存每一个版本的文件信息的时候要做到不保存重复数据
, 以节约存储空间, 提高运行效率。 这方面 SVN 采用的是增量式管理的方式, 而 Git 采取了文件系统快照的方式。 - 权限控制
对团队中参与开发的人员进行权限控制。
对团队外开发者贡献的代码进行审核——Git 独有。 - 历史记录
查看修改人、 修改时间、 修改内容、 日志信息。
将本地文件恢复到某一个历史状态
。 - 分支管理
允许开发团队在工作过程中多条生产线同时推进任务, 进一步提高效率。
- 协同修改
- 版本控制软件的分类:
- 集中式版本控制工具 :
CVS、 SVN、 VSS……
- 分布式版本控制工具:
Git、 Mercurial、 Bazaar、 Darcs……
- 集中式版本控制工具 :
1.3.GitHub和Git的关系?
- Git是版本控制
软件
- Github代码托管网站
- 关系:我们可以借助Git这个版本管理工具把我们的项目代码托管到github网站,
至于如何使用git把我们的项目代码托管到GitHub网站我们后面再说
02.Github网站
2.1.为什么要学习使用GitHub网站?
- 因为GitHub在这个网站上有很多优秀的开源项目,我们可以从上面找到很多我们喜欢的开源项
- 关注行业前辈了解最新的行业动态(关注他的GitHub中托管的项目)
2.2.GitHub网站提供的功能
2.2.1.GitHub主页
- 账号创建成功或点击网址导航栏github图标(那个黑色的八爪鱼图标)都可进入github主页
- 该页
左侧
主要显示用户动态以及关注用户或关注仓库的动态,右侧
显示所有的git仓库
2.2.2.个人主页
- 个人主页显示的信息:头像,个人简介,关注我的人,我关注的人,我关注的git库,我的开源项目,我贡献的开源项目等信息
2.2.3.仓库主页
- 仓库主页主要显示我们的仓库(一个一个github项目)
仓库(Repository)
仓库用来存放项目代码,每个项目对应一个仓库,多个开源项目则有多个仓库
2.2.4.仓库页面(重要)
仓库页面功能介绍:
关注(Watch)
关注项目,当项目更新可以接收到通知收藏(Star)
收藏项目,方便下次查看,看到好的项目可以Star一下
复制克隆项目(Fork)
复制或者克隆别人的仓库到成为自己的仓库
注意:复制为自己的仓库后就和别人的仓库没有关系了(类似文件拷贝)发起请求(Pull Request)
当你发现别人的项目有问题或者可以改善的时候可以通过发送请求告知别人事务卡片(Issue)
发现代码BUG,但是目前没有成型代码,需要讨论时用;
2.3.如何创建仓库(新项目)
- 在
仓库主页
点击NEW
即可创建新的仓库
2.4.仓库管理
2.4.1.在仓库中新建文件
- 在想要管理的仓库页面中点击
Add File
选择Create new file
2.4.2.编辑创建的新文件
- 修改文件
- 在commits中查看修改的记录
2.4.3.上传本地文件到仓库
2.4.4.搜索仓库文件
- 在要搜索文件的仓库页面点击
GO to file
进入筛选文件的页面
2.5.删除仓库
- 在仓库主页找到想要删除的仓库,点击进入仓库
- 然后点击setting,选中
Options
栏,向下拉找到Danger Zone
,点击Delete this repository
即可。
03.Git的使用
3.1.Git的下载和安装
3.1.1.Git的下载
- 官方网址:https://git-scm.com/
- 进入官网点击Downloads
- 选择windows
- 选择64位系统的软件
3.1.2.Git的安装
- 双击下载好的软件开始安装
- 选择安装位置
- 选择组件(默认即可)
- 开始菜单目录名设置(默认即可)
- 选择使用命令行环境
- 接下来一路next就可以了(等待安装完成)
如何查看安装的软件
(桌面空白处右击鼠标即可查看)
3.2.Git的优势
- 使用git我们可以在本地对项目进行版本控制,不需要联网
我们可以使用git在本地进行版本控制
我们还可以使用git工具把我们的本地的项目托管到github网站,或者我们自己的私有服务器上
- git命令
与 Linux 命令全面兼容
3.3.Git的结构
- 工作区:我们编写的代码都存放在工作区
- 暂存区:存放临时存储
- 本地Git仓库:存放历史版本
3.4.向本地Git仓库中添加文件流程
- 我们可以在
Git Bash Here
中执行命令来操作。
3.5.本地版本控制常用的git命令(提前知晓:重要!!!)
- 查看Git的配置信息
命令:git config --list
- 初始化本地文件夹为Git管理文件夹
命令:git init
- 查看工作区或者暂存区状态
命令:git status
- 将工作区中的文件添加到暂存区
选择提交的文件:
命令:git add [file name]
提交全部文件:
命令:git add *
- 把提交到暂存区的文件撤回
选择撤回的文件:
命令:git rm --cached [file name]
撤回全部文件:
命令:git rm --cached *
- 将暂存区的内容提交到本地库
命令:git commit -m "commit message" [file name]
- 查看历史记录
git log:显示详细信息
git log --pretty=oneline:显示简洁的信息
git log --oneline:显示更简洁的信息
git reflog:HEAD@{移动到当前版本需要多少步}
注意:多屏显示控制方式:空格向下翻页,b 向上翻页,q 退
- 版本的前进后退
方法一:基于索引值操作[推荐]
命令:git reset --hard [局部索引值]
例如:git reset --hard a6ace91
方法二:使用^符号: 只能后退
命令:git reset --hard HEAD^
注: 一个^表示后退一步, n 个表示后退 n 步
方法三:使用~符号: 只能后退
命令:git reset --hard HEAD~n
注: 表示后退 n 步
reset的参数对比:
--soft参数:仅仅在本地库移动 HEAD 指针
--mixed参数:在本地库移动 HEAD 指针,重置暂存区
--hard参数:在本地库移动 HEAD 指针,重置暂存区,重置工作区
- 删除文件的找回
前提:删除前, 文件存在时的状态提交到了本地库。
操作:git reset --hard [指针位置]
删除操作已经提交到本地库, 指针位置使用:历史记录
删除操作尚未提交到本地库, 指针位置使用 :HEAD
- 比较文件差异
git diff [文件名]:将工作区中的文件和暂存区进行比较
git diff [本地库中历史版本] [文件名]`:将工作区中的文件和本地库历史记录比较
注意:不带文件名比较多个文件
3.6.Git的初始化配置(也可以不配置)
- Git安装好之后需要初始化一些配置信息,例如用户名和用户邮箱等。
- 作用: 区分不同开发人员的身份
- 注意: 这里设置的
用户名,邮箱
和登录远程库(代码托管中心)的账号、 密码没有任何关系 - 方法:桌面空白处右键打开
Git Bash Here
,执行下面的命令即可:
1. 设置用户名
git config --global user.name 'alsmall'
2. 设置用户名邮箱
git config --global user.email '123456789@qq.com'
3.使用以下命令可以查看配置信息
git config --list
3.7.本地Git仓库创建和操作
3.7.1.如何在本地创建一个Git仓库
- 第一步:在磁盘上新建一个用来存放项目的文件夹,例如
testRepository
(一个Git仓库) - 第二步:
切换到testRepository文件夹下
,使用命令:git init
将此文件夹初始化为一个Git仓库即可。 - 注意: 此时在文件夹(testRepository)下会多出一个隐藏文件:
.git
,这个文件中的内容不能动,否则我们就无法进行版本控制了
3.7.2.如何向本地Git仓库添中加文件
- 使用
touch 文件
命令在testRepository仓库种添加文件 - 使用
git add 文件名
将此文件移动到暂存区 - 使用
git commit -m '提交描述'
命令将文件从暂存区提交到Git仓库 - 注意:使用
git status
命令查看当前的文件状态
3.7.3.使用命令修改本地仓库工作区中的文件(了解)
- 使用
vi 文件名加后缀
命令进入修改文件页面
- 编辑页面
- 注意:工作区中的文件修改后不要忘记提交
3.7.4.使用命令删除本地仓库中文件(了解)
- 使用
rm -rf 文件名
命令来删除文件 - 使用
git rm 文件名
命令删除暂存区文件 - 使用
git commit -m '提交描述'
命令来提交
3.8.Git 和代码托管中心(远程仓库)
-
我们虽然可以在本地进行版本控制,但是为了安全和方便起见,我们还会把
本地Git仓
库通过Git推送到代码托管中心(远程库
),此时就算我们本地的Git仓库被删除也不用害怕。
-
代码托管中心的任务: 维护远程库
-
局域网环境下的远程仓库(私服)
- GitLab 服务器
-
外网环境下的远程仓库(代码托管网站)
- GitHub
- 码云
3.9.连接远程仓库常用的git命令(提前知晓:重要!!!!)
- 关联远程仓库
git remote add origin 远程仓库的HTTPS链接
- 查看关联的远程仓库
命令:git remote -v
- 移除关联的远程仓库
命令:git remote remove origin
- 将本地文件推送到远程仓库
命令:git push origin master
注意:如果新建的远程仓库为空的,使用这个命令提交时要加上-u这个参数
命令:git push -u origin master
注意:如果远程库不为空要做这一步(获取远程库与本地同步合并)否则后面的提交会失败
命令:git pull --rebase origin master
提交:git push origin master
3.10.使用Git管理远程仓库
3.10.1.使用远程仓库的目的
- 作用:备份,实现代码
共享
集中化管理
3.10.2.如何将本地的Git仓库同步到GitHub(远程仓库)
3.10.2.1.方式一:通过克隆(HTTPS协议)(建议使用)
-
第一步:在GitHub上创建一个仓库(注意把仓库地址复制先来以备用)
-
第二步:在本地使用Git Bash Here软件将远程仓库克隆下来
-
第三步:我们把本地项目文件夹下的所有文件,都复制到这个克隆的文件夹下
-
第四步:接着继续输入命令 cd testCreatRepository,进入testCreatRepository文件夹
-
第五步:接下来依次输入以下代码即可完成上传操作
1.别忘记后面的*,此操作是把该文件夹下面的文件都添加进来
git add *
2.“提交信息”,我们自己填自己需要的
git commit -m "提交信息"
3.此操作目的是把本地仓库push到github上面,此步骤需要输入帐号和密码
git push -u origin master
3.10.2.2.方式二:通过SSH协议(SSH加密)
-
第一步:在本地新建一个Git仓库(在本地创建一个文件夹,在此文件下打开
Git Bash Here
使用git init
命令将此文件夹初始化一下即可) -
第二步:在本地Git仓库中新建一个文件:
touch 文件
-
第三步:提交文件到本地Git仓库
- 1:使用
git add 文件名
将此文件移动到暂存区 - 2:使用
git commit -m '提交描述'
命令将文件从暂存区提交到本地Git仓库 - 3:使用
git status
命令查看当前的文件状态
- 1:使用
-
第四步:由于本地Git仓库和Github仓库之间的传输是通过SSH加密的,所以连接时需要设置一下
- 创建SSH KEY,首先看一下你C盘用户目录下有没有.ssh目录,有的话看下里面有没有id_rsa和id_rsa.pub这两个文件,有就跳到到第五步,没有就跟着下面的步骤进行创建。
- 1、输入下边的命令
$ ssh-keygen -t rsa -C "youremail@example.com"
注意ssh-keygen
之间没有空格 - 2、然后回车,询问保存key的位置,默认是在括号里的路径下,你可以修改,也可以不做修改,我不做修改,再按回车,询问是否设置密码,我不设置密码,再按回车,确认密码,同样不输入密码,如下图所示:
- 这时用户下的.ssh目录里就会有id_rsa和id_rsa.pub这两个文件
-
第五步:登录Github,找到右上角的头像图标,打开点进里面的Settings,再选中里面的SSH and GPG KEYS,点击右上角的New SSH key,然后Title里面随便填,再把刚才id_rsa.pub里面的内容复制到Title下面的Key内容框里面,最后点击Add SSH key,这样就完成了SSH Key的加密。具体步骤也可看下面:
-
第六步:在Github上创建一个Git仓库,把地址复制下来后面做远程连接会用(注意此处复制SSH链接,因为我们要使用SSH协议)。
-
第七步:在Github上创建好Git仓库之后我们就可以和本地仓库进行关联了,在本地仓库目录下打开
Git Bash Here
,输入命令:
1.如果之前关联过远程仓库则要使用下面的命令移除关联的远程仓库
git remote remove origin
2.然后在执行远程仓库的关联
$ git remote add origin 你的仓库的ssh链接
-
origin后面加的是Github上创建好的仓库的地址
-
第八步:关联好之后我们就可以把本地库的所有内容推送到远程仓库(也就是Github)上了
-
总结:其实只需要进行下面几步就能把本地项目上传到Github
1、在本地创建存放本地Git仓库的文件夹,并将其初始化。
2,在本地仓库中创建项目, 再通过git add 把项目添加到仓库;
3、再通过git commit -m "注释内容"把项目提交到仓库;
4、在Github上设置好SSH密钥后,新建一个远程仓库,通过
git remote add origin 你的仓库的ssh链接
将本地仓库和远程仓库进行关联(如果本地仓库之前关联过别的仓库则要删除后在进行关联)5、最后通过
git push -u origin master
把本地仓库的项目推送到远程仓库(也就是Github)上
3.11.分支管理
3.11.1.什么是分支?
- 在版本控制过程中, 使用多条线同时推进多个任务
3.11.2.分支的好处?
- 同时并行推进多个功能开发, 提高开发效率
- 各个分支在开发过程中, 如果某一个分支开发失败, 不会对其他分支有任何影响。 失败的分支删除重新开始即可。
3.11.3.分支操作
- 创建分支:
git branch [分支名]
- 查看分支:
git branch -v
- 切换分支:
git checkout [分支名]
- 合并分支:
- 第一步: 切换到接受修改的分支(被合并, 增加新内容) 上:
git checkout [接受修改的分支]
- 第二步: 执行 merge 命令:
git merge [有新内容分支名]
- 第一步: 切换到接受修改的分支(被合并, 增加新内容) 上:
- 解决合并分支是产生的冲突
- 冲突的表现:当两个分支更改了同一个文件的同一个位置而且内容还不一致时,在合并的时候就会产生冲突,git就无法确定保存那个分支的修改内容
- 冲突的解决
第一步: 编辑文件, 删除特殊符号
第二步: 修改文件达到满意, 保存退出
第三步: git add [文件名]
第四步: git commit -m “日志信息”
注意: 此时 commit 一定不能带具体文件名
- 冲突的表现:当两个分支更改了同一个文件的同一个位置而且内容还不一致时,在合并的时候就会产生冲突,git就无法确定保存那个分支的修改内容
3.12.团队协作成员邀请
- 假如开发人员开发一个小项目,感觉一个人开发没有意思想要邀请别人一起开发,此时问题就出来啦,怎么实现哪?
- 我们以远程仓库为GitHub仓库为例
- 第一步:先把本地Git仓库中的项目托管到远程仓库
- 第二步:在GitHub上发出邀请,邀请团队成员
- 第三步:被邀请人员同意邀请,成为团队成员
- 第四步:被邀请人员克隆远程仓库到自己的本地
- 第五步:被邀请人员就可以提交修改了