目录
git工作流程
1.git介绍
用来将自己的代码托管至一些代码管理平台进行代码的版本管理和协同开发,比如Github、Gitee,有些公司也会使用自己搭建的Gitlab
2.git工作流程
- 克隆 Git 资源作为工作目录,只要被Git管理了当文件发生变化(增、删、改),使用Git就能看到文件变成了红色
- 工作区的变更要提交到暂存区文件又会变成绿色
- 从暂存区提交到版本库才会被版本管理,一旦被版本管理了后期可以回退到某个版本
- 可以把版本库的内容提交到远程仓库,统一管理起来所有的开发者都可以提交
- 将远程仓库的项目clone下来,也可以将本地代码提交到远程仓库中
3.git常用命令
初始化仓库
git init
查看状态命令
git status # 当仓库中有文件增加、删除、修改,都可以在仓库状态中查看 git status -s # 查看仓库状态的简约显示
配置用户信息
- 局部配置:如果局部配置没有会用全局配置
git config user.name 'abc' git config user.email '110@qq.com'
- 全局配置:如果全局配置也没有则会报错
git config --global user.name 'abc' git config --global user.email '110@qq.com'
提交到暂存区
git add . # 把工作区所有更改都提交到暂存区 git add 文件名 # 把工作区当前文件的更改都提交到暂存区
把暂存区的提交到版本库
git commit -m '写注释'
ps:一定要加注释不加注释提交不了,并且我们在工作做一般把注释写的越详细越好
查看版本情况
git log # 本地版本库有哪些版本 git reflog # 精简的显示
撤销工作区的操作
git checkout . # 撤销所有暂存区的提交 git checkout 文件名 # 撤销某一文件的暂存区提交
撤销暂存区提交
git reset HEAD . # 撤销所有暂存区的提交 git reset 文件名 # 撤销某一文件的暂存区提交 git reset . # 撤销所有暂存区的提交
补充知识点:git log 与 git reflog
git log 和git reflog的区别git log 命令可以显示所有提交过的版本信息如果感觉太繁琐,可以加上参数 --pretty=oneline,只会显示版本号和提交时的备注信息git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)# git reset --hard,--mix,--soft的区别hard (硬)-> 全部删除,会彻底返回到回退前的版本状态,了无痕迹mixed (中)-> 保留工作目录,文件回退到未commit的状态soft (软)-> 保留工作目录、暂存区 ,文件会回退到未 add(未到暂存)的状态总结:soft是撤销commit的提交,但工作区未提交的更改还是保留;mixed是撤销暂存区的提交,工作区的更改同样也保留;而hard是把工作区、暂存区、commit到仓库的三个版本都回滚了
git过滤文件
在Git的版本控制中,可能有些文件是不需要加入控制的,那我们在提交代码时就需要忽略这些文件
- 在项目根目录中创建 .gitignore 文件夹【没有任何后缀名】,在文件中可以配置文件过滤语法文件和文件夹均可以被过滤
文件或文件夹名:代表所有目录下的同名文件或文件夹都被过滤 /文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤 eg: a.txt:项目中所有a.txt文件和文件夹都会被过滤 /a.txt:项目中只有根目录下a.txt文件和文件夹会被过滤 /b/a.txt:项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤 *x*:名字中有一个x的都会被过滤(*代表0~n个任意字符) 空文件夹不会被提交,空包会被提交,包可以被提交(包中有一个init空文件)
ps:通过这种方式可以把项目在推到仓库中时哪些筛选掉的文件就不会推上去,但是已经存在在远程仓库内了的文件则不会受影响需要自己去删除
git多分支开发
多分支开发情景:
当我们组在开发一个项目写完一个大功能后上测试环境,这时候可以开分支继续开发开发过程中要想看上次写完的功能就完全不受影响,通过分支可以让我们更方便协同开发管理版本
分支操作
·查看当前所在分支 -git branch ·创建分支 -git branch dev ·切换分支 -git checkout dev ·删除分支 -git branch -d dev # 不能删除当前所在的分支 ·合并分支 -回到master分支上执行代码 -git merge dev:把dev合并到master上 ·查看远程分支 -git branch -a
git远程仓库
github:国际性的在国外速度比较慢
gitee:国内的速度比较快,这里使用的
gitlab:公司内部自己搭建的(Docker部署gitlab(避坑版) - 知乎)
向远程仓库提交
登陆gitee,先需要注册用户,然后步骤看下图
创建完远程库后将本地代码上传到远程仓库中,确保本地仓库已经有版本管理远程仓库为空
- 设置用户名和邮箱
git config --global user.name "abc" git config --global user.email "110qq.com"
- remote源操作
""" 1)查看仓库已配置的远程源 >: git remote >: git remote -v 2)查看remote命令帮助文档 >: git remote -h 3)删除远程源 >: git remote remove 源名 eg: git remote remove origin 4)添加远程源 >: git remote add 源名 源地址 >: git remote add orgin git@gitee.com:doctor_owen/luffyapi.git 5)提交代码到远程源 >: git push 源码 分支名 6)克隆远程源 >: git clone 远程源地址 """ """ 1)通过克隆方式连接远程源,默认远程源名就叫origin;所以主动添加远程源来连接远程仓库,源码也用origin 2)本地一个仓库只需要和远程一个源进行同步,所以只需要连接一个远程源,如果还想把本地代码同步给第三个平台,那么可以通过主动添加远程源来连接第三个平台的远程仓库,此时的源码就不能再叫origin了,比如online都可以 3)pull和push都可以提供选择不同的源码,和不同的远程仓库交互 """
ssh链接仓库
- https和ssh的区别
https:输入用户名密码,保存在凭据管理中
ssh:配置公钥私钥,公钥放到gitee上,配置好后以后直接提交不需要输入任何密钥
- ssh的配置步骤
官网:https://gitee.com/help/articles/4181#article-header0 本机命令,生成公钥:ssh-keygen -t rsa -C "*@*.com" 邮箱可以任意填写 本机命令,查看公钥:cat ~/.ssh/id_rsa.pub 码云线上添加公钥:项目仓库 => 管理 => 部署公钥管理 => 添加公钥 => 添加个人公钥