1.版本控制概念
版本控制是一种记录文件变化的方式,以便将来查阅特定版本的文件内容
2.Git是什么
git是一个分布式版本管理控制系统,可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任意时间点将更新记录恢复回来。
git环境搭建 :
在git官网下载,然后傻瓜式安装下一步就可以了
3.git基本工作流程和使用前配置
工作目录:被Git管理的项目目录,也就是我们编写代码的地方
暂存区:临时存放被修改文件,方便进行管理
Git仓库:代码最终提交存放的位置
执行流程: 工作目录中修改的文件 --> 提交到 暂存区 --> GIT仓库
使用前配置:
配置提交人姓名:git config --global user.name + 提交人姓名
配置提交人邮箱:git config --global user.email + 提交人邮箱
查看git配置信息: git config --list
通过命令行的形式进行的配置,也可以通过修改配置文件来进行修改,文件名字叫 .gitconfig
,位置在 C:\Users\系统用户名.gitconfig
要对配置信息进行修改的话,重复上述命令即可
4.Git使用
提交文件到Git仓库
1.初始化git仓库
git init
2.添加文件到暂存区
git add index.html
git add . 是将全部文件进行提交
3.提交到Git仓库
git commit -m '日志信息'
4.查看相关状态
git status
5. 查看提交日志信息
git log
5.恢复版本
1.从暂存区进行恢复
git checkout 文件名
2.从git仓库中进行版本恢复
git reset --hard 版本id //版本id需要通过git log命令来查询
3.删除掉暂存区的文件
git rm --cached 文件名
6.分支和分支相关命令
主分支master
第一次向 git 仓库中提交更新记录时自动产生的一个分支。这个属于是主分支,主分支中的代码是很稳定的代码,所以我们在开发的时候一般都不会把代码直接提交到主分支中,主分支中的代码一般都是用于线上的项目;我们一般在开发的时候,会把代码先 同步到开发分支上,等功能完成并且测试没有问题了,我们才会同步到主分支上
开发分支develop
作为开发的分支,基于 master 分支创建,这条分支就是用于我们日常开发的分支
功能分支feature
作为开发具体功能的分支,基于开发分支创建,为了不影响整体的开发项目,我们在实现某一些有难度的功能时候,会创建功能分支,等到功能实现完毕,没有问题了我们才会同步到开发分支上
三者的合并流程为:功能分支 -> 开发分支 -> 主分支
分支相关命令
查看分支 git branch
创建分支 git branch +分支名称
切换分支 git checkout + 分支名称
注意:当切换分支的时候,需要把暂存区里面的文件进行提交,不然暂存区里面的文件会跟着到切换的这条分支上(也就是使用git status后显示nothing to commit, working directory clean)
当切换回主分支的时候,就看不到其他分支的文件了
创建并切换到分支 git checkout -b +新分支名称
合并分支 git merge +分支名称
删除分支 git branch -d +分支名 删除已经合并过的分支
git branch -D +分支名 强制删除分支,就算没有合并过也进行删除
暂时保存更改
在git中,可以暂时提取分支上所有的改动并存储,让开发人员得到一个干净的工作副本,临时转向其他工作。
存储临时改动 git stash
恢复改动 git stash pop
GitHub
概念:GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。
7.将本地仓库推送到GitHub:
第一种:使用push进行代码推送
git push +远程仓库地址 +本地需要推送代码的分支
例如:git push https://github.com/WSUYI/gaoshou.git master
第二种:
1.设置远程仓库地址别名
git remote add +远程仓库地址别名+远程仓库地址
例如:git remote add origin https://github.com/WSUYI/gaoshou.git
2.git push +远程仓库地址或别名 +本地分支名称
例如:git push origin master
或git push -u origin master
//-u参数的作用就是记住别名和分支名,下次推送代码的时候直接git push就可以了
8.下载GitHub的代码
git clone+ 远程仓库的地址 第一次下载远程仓库的代码
git pull +远程仓库地址+分支名 拉取代码
9.解决代码冲突
多人开发肯定会出现代码冲突的情况,冲突情况的产生,是多个人同时修改了一个文件,例如,A修改了index.html文件,B也修改了index.html文件;A进行了提交,那么B就不能提交了
就会报错:failed to push some refs to "GitHub远程仓库的地址"
解决方案:
先拉取最新的代码: git pull origin master
打开产生冲突的文件,修改冲突的代码。
修改完成之后,将代码重新推送即可。 (git commit -m 日志 git push origin master)
10.SSH免登录
利用SSH协议去进行提交,可以进行免登录操作,实现其原理用的是公钥与私钥,公钥跟私钥是成对呈现,打个比喻:公钥就是一个门锁,私钥就是打开门锁的钥匙,公钥保存在github的账户中(远程服务器中),私钥保存在客户端,当客户端进行push的 时候,会携带私钥,远程服务器就会去比对是否匹配,如果匹配,那么push成功
公钥:保存在github账户中,也就是在远程服务器中
私钥:保存在客户端
生成密钥:
ssh-keygen 生成的密钥在C:\\Users\当前用户名称\.ssh 文件夹里面
在GitHub中添加公钥
找到 id_rsa.pub
文件,这个就是公钥,复制里面的内容,到github上,点击用户头像,选择settings
11.Git忽略清单
在根目录中创建 .gitignore 文件
在文件中输入需要忽略的文件夹的名字或者需要忽略的文件名称
12.仓库的详细说明
在仓库根目录添加一个 readme.md
文件即可,在里面写上内容,push到服务器后,默认在github
里面就能看到仓库的详细说明了