1.0 Git版本控制(新旧版本迭代)
git bash:Unix 和 Linux风格的命令,使用最多
git cmd:windows风格的命令
git GUI:图形界面的git,不建议使用,尽量先熟悉常用命令
版本控制是一种在开发过程中用于管理对文件、目录或工程等内容的修改,方便查看更改历史记录,备份以恢复以前的版本的软件工程技术。
- 多人协同开发,提高开发效率
- 节省时间,降低人为错误
- 统计工作量
常见的版本控制器
- Git(是分布式版本控制系统,没有中央服务器)
- SVN(Subversion,是集中式版本控制系统,需要一个中央服务器,联网才能使用)
- CVS
- VSS
- TFS
- VS online
版本控制分类
-
本地版本控制(rcs)
记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用
-
集中版本控制(svn)
所有版本数据都存在服务器上,协同开发从服务器上同步更新或上传代码。用户本地只有以前同步过的版本,不联网的话用户就看不到历史版本
-
分布式版本控制(git)
每个人都拥有全部的代码。
所有版本信息仓库全部同步到本地的每个用户,可以在本地查看所有历史版本,可以离线在本地提交,只需要在联网时push到相应的服务器。但是占用较多的本地存储空间。
2.0 git 配置文件
-
git的配置文件位置
针对所有用户:/etc/gitconfig
针对当前用户: ~/.gitconfig -
查看配置的方法
git config --list
-
修改配置的方法
git config --global user.name "wangyubin" (修改的是~/.gitconfig) git config --system user.name "wangyubin" (修改的是/etc/gitconfig)
-
git连接远程仓库
$ git remote add origin '你的远程仓库地址'
-
提交
$ git push -u origin main # 修改Git 本次Commit提交记录的用户名Name和邮箱Email git commit --amend --author="new-name <xxx@new.com>"
3.0常用的Linux命令
cd .. //返回上一级目录
cd 文件路径 //进入目录
pwd //显示当前目录路径
ls/ll //都是列出当前目录的所有文件,ll更详细
touch //新建一个文件
rm //删除一个文件
mkdir //新建文件夹
rm -r //删除一个文件夹
mv //移动文件
reset //重新初始化终端/清屏
clear //清屏
history //查看命令历史
help //帮助
exit //退出
# //表示注释
4.0 git常用命令(包括clone远程仓库到本地)
查看和修改用户名和邮箱
$ git config --list //查看全局配置
$ git config user.name
$ git config user.email //查看
$ git config --global user.name "username"
$ git config --global user.email "email" // 修改
配置密钥
id_rsa
是这台电脑的私人秘钥
id_rsa.pub
是公共秘钥
ssh-keygen -t rsa -C "youremail" //一直回车,生成.ssh的文件
cd /c/Users/.ssh
cat id_rsa.pub //得到密钥
git连接远程仓库
$ git remote add origin '你的远程仓库地址'
将本地仓库推送到远程仓库
$ git push -u origin main
pull:是下拉代码,相等于将远程的代码下载到你本地,与你本地的代码合并
push:是推代码,将你的代码上传到远程的动作
完整的流程是:
第一种方法:(简单易懂)
1、git add .(后面有一个点,意思是将你本地所有修改了的文件添加到暂存区)
2、git commit -m""(引号里面是你的介绍,就是你的这次的提交是什么内容,便于你以后查看,这个是将索引的当前内容与描述更改的用户和日志消息一起存储在新的提交中)
3、git pull origin 远程分支名 这是下拉代码,将远程最新的代码先跟你本地的代码合并一下,如果确定远程没有更新,可以不用这个,最好是每次都执行以下,完成之后打开代码查看有没有冲突,并解决,如果有冲突解决完成以后再次执行1跟2的操作
4、git push origin master(git push origin 本地分支名:refs/remotes/远程分支名) 将代码推至远程就可以了
第二种方法:
1、git stash (这是将本地代码回滚值至上一次提交的时候,就是没有你新改的代码)
2、git pull origin 远程分支名(将远程的拉下来)
3、git stash pop(将第一步回滚的代码释放出来,相等于将你修改的代码与下拉的代码合并)
然后解决冲突,你本地的代码将会是最新的代码
4、git add .
5、git commit -m ""
6、git push origin master(git push origin 本地分支名:refs/remotes/远程分支名)
这几步将代码推至了远程
最后再git pull origin 远程分支名 一下,确保远程的全部拉下来,有的你刚提交完有人又提交了,你再拉一下会避免比的不是最新的问题
5.0 Git基本理论
工作区域
git 有四个工作区域:工作目录、暂存区和本地仓库,远程的git仓库
- 工作区:平时存放项目代码的地方
- 暂存区:临时存放改动的地方,本质上是一个文件,保存的是即将提交的文件信息
- 本地仓库:安全存放数据的位置,这里有提交的所有版本数据,HEAD指向最新放入仓库的版本
- 远程仓库:托管代码的服务器
创建本地仓库的两种方式
- git init
- git clone 去Gitee或者Github克隆一个远程仓库
工作流程
git status //查看工作区文件的状态
▪Untracked //未跟踪
▪Unmodify //文件已入库
▪Modified //文件已修改
▪Staged //暂存状态
git add . //添加所有文件到暂存区
git commit -m "message" //提交暂存区的内容到本地仓库
忽略文件
在主目录下建立 ".gitignore" 文件
- 忽略文件中的空行或以
#
开始的行会被忽略 - 可以使用Linux通配符,例:
*
表示多个字符?
表示一个字符[]
表示可选字符范围{}
表示可选的字符串 等等 !
表示例外规则,不被忽略/file
忽略根目录下的一级file
文件file/
忽略此目录下的所有文件
6.0 Git分支
master:主分支
因为创建、合并、删除分支非常快,所以Git鼓励使用分支完成某个任务,合并后再删掉分支,这和直接在master
分支上工作效果是一样的,但过程更安全。
git branch //查看本地分支
git branch -r //查看远程分支
git branch [name] //创建一个分支
git checkout [name] //切换分支
git checkout -b [name] //新建一个分支,并切换到该分支
git merge [nama] //合并分支到当前分支
git branch -d [name] //删除分支
git push origin --delete [name] //删除远程分支
解决冲突
当master
分支和dev
分支各自都分别有了新的提交,就产生了冲突,分支合并就会失败,必须手动解决后才能合并