一、git: 是一款代码管理工具(版本控制工具)
1、git 安装(这里不详细赘述)
开始git备份之前:在github或者码云上建立远程仓储(仓库)
1)、登录github/码云
2)、创建仓库
3)、进入仓库编辑
4)、创建完成后,显示(远程仓库界面)
2、git操作具体步骤及相关指令:
1、本地初始化git仓储/(暂存区)
命令:git init 此时项目文件里会出现隐藏文件夹 .git (这个文件储存当前项目的所有版本信息)快捷键:ctrl+shift+.
2、在git中全局配置当前使用者的用户名和邮箱(区别各个使用的用户是谁)
配置用户名命令:git config --global user.name "WUBO1533085891" (回车会回到根路径表示成功)
配置邮箱命令:git config --global user.email "1533085891@qq.com" (回车会回到根路径表示成功)
3、开始备份(共两步)
开始备份前通过指令:git status 查看当前状态,通常显示为红色
工作区-暂存区(提交到暂存区,再次输入git status 会看到变成绿色 new file 未提交文件)
(1)输入命令git add 要备份的文件名(这里指单个文件名)
或者直接git add *(所有文件)
(2)输入命令git commit -m "这里跟一些提交说明" 例如:"init my project" (到这一步,已将文件从工作区上传到暂存区)
注意:如果修改文件后直接上传到仓储可直接输入 git commit --all -m "这是一次性的操作" (引号之间的说明可自定义)
4、提交完成后查看状态:git status
显示当前工作区是干净的,没有任何东西可以被提交。
5、倘若此时需要对文件进行修改。例如修改了html文件。再次通过git status查看状态时,会提示有文件与上一个版本不一致
提示信息显示,你可以通过 git add 文件名 再次提交,也可以通过 git checkout 文件名 恢复到之前
因此,通过命令:git add * 以及git commit -m "这是第二次提交" 再次将修改文件提交至远程仓储。再次提交后,查看状态显示没有任何东西可以被提交。
6、查看到我对哪个文件进行修改了(红色代表删除,绿色代表新增)
git diff
7、git log 查看日志
命令:git log (可以查看提交修改的记录)
git log --oneline (更精简的方式查看)
8、 版本回退(恢复版本)
git reset --hard 版本号
倘若提交后,不小心对项目文件进行了删除操作,可以针对某一版本进行恢复
3、ssh 配置
生成ssh密钥:
1、生成公钥和私钥:
ssh-keygen -t rsa -C "1533085891@qq.com"
注意:后面跟的邮箱地址为github上的邮箱地址
因为之前有生存,括号中是密钥存放的路径,直接按回车覆盖即可,出现下图红色区域部分,说明ssh已经生成了
查找密钥:
1、window电脑查找密钥文件:我的电脑=>用户=>用户名文件夹=> .ssh(隐藏文件)=> id_rsa.pub(密钥存放文件)
2、苹果电脑查找密钥文件:复制密钥路径 => 回到桌面顶部菜单(前往)=> 前往文件夹(粘贴路径)=> 找到id_rsa.pub文件,在编辑器中打开可查看密钥
也可以通过命令直接获得密钥:
gitHub配置密钥:
回到之前建立的远程仓储的页面,右上角点击下拉菜单并在新窗口中打开Setting
左侧找到SSH and GPG keys选项
点击新增一个密钥按钮
进入密钥配置页面随便起个名字将生成的密钥拷贝进去,然后添加即可
提交后,可以看到密钥配置好了。
4、上传以及下载代码
暂存区-远程仓库
git remote add origin 远程服务器地址
(注意:这里其实相当于声明一个变量origin代替地址,远程服务器地址HTTPS如果受阻,可以更改为SSH地址)
git push origin -u master
输入命令后,提交成功
提交成功后,刷新远程仓库页面,可以在远程仓库页面看到我们项目上传成功。readme.md文件会被解析成网页展示。
如果在前一次将代码上传至服务器的命令行master前面加上参数-u 后续提交代码至服务器/或者从服务器下载只需要输入 git push/git pull 即可
修改远程源链接,只需输入命令即可删除,然后回到步骤1重新添加
git remote rm origin
下载代码:
此时,只需要在新的项目文件夹路径下,输入:
git clone 远程服务器地址
通过上面指令操作即可,将项目从远程服务器拷贝到本地。这样,可以方便促使多人协同开发。
注意:在多人协同开发的过程中,每个人的开发进度是不一样的,因此为了防止代码冲突。需要更新服务器上最新的代码,因此,可以使用git pull 命令来更新本地的项目文件
git pull // 从远程仓库同步本地代码
5、分支
概念:再版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作,从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。
默认有一个主分支master
1、创建分支
git branch 分支名字
2、列出分支
git branch // 查看当前分支。* master 为绿色表明当前在master这个分支
git branch -r // 查看远程分支
3、切换分支
git checkout 分支名字
(1)实际工作中,我们可以在dev分支下修改了项目文件后进行提交到本地。
(2)切换到master后,回到之前主分支时的状态,在将修改后的分支进行合并
(3)正常合并分支,如果分支没有对主线master文件里的东西进行修改,那么切换至master分支,输入命令 git merge 分支名字 即可完成合并。
(4)冲突合并分支,如果分支对主线master文件里的东西进行修改后提交到本地,在切换到其他分支进行了修改后提交到本地,那么在进行合并的时候会产生冲突。
冲突产生的原因:两个分支在同一个文件的同一个位置有两套完全不同的修改,git无法替我们决定使用哪一个,必须人为决定新代码内容。
合并失败后,冲突部分的代码,已用特殊符号进行了标记
删除不必要的代码以及特殊符号,再次提交至本地库(注意:这里提交时,不能带指定文件名)
合并成功
查看状态,合并后的文件已覆盖master分支上的文件
4、回到默认分支命令
git checkout master
5、合并分支
git merge 分支名字
6、删除分支
git branch -d 分支名字
注意:1、合并删除分支不能在当前分支下进行
2、如果出现master和分支里边的代码冲突,则需要手动处理在进行提交
6、总结
github是有墙的,比较慢,在国内的话,我们一般使用gitee。公司中有时候会搭建自己的gitlab服务器
master、dev...其实都是指向具体版本记录的指针,当前所在的分支,其实是由HEAD决定的。所以创建分支的本质其实就是多创建一个指针。HEAD指向master说明在master分支上。HEAD指向dev说明在dev分支上。
团队内协作,需要邀请成员github上打开项目=>settings => manage access => invite a collaborator