git安装和介绍
代码管理软件: git svn
git是分布式管理,服务端挂了还可以在本地做版本管理、代码合并
svn是集成式管理,服务端挂了就挂了,只能等
git的安装
git下载下来以后双击安装软件件一直下一步就行了,安装完成以后可以在cmd中输git测试,也可以通过鼠标右键查看有没有Git GUI Here和Git Bash Here
git工作流程
git可以分为三个区: 工作区、暂存区、版本库
工作区就是存放文件的地方
暂存区是工作区的变更提交过来的
版本库是暂存区的内容提交到版本库
![image-20230222184116353]()
git常用命令
1.先确定一个文件夹作为仓库
选定一个文件夹或者创建一个文件夹,在文件夹下鼠标右键选择Git Bash Here,在弹出的执行框中键入
git init,初始化仓库,当前文件夹下会出现一个.git文件夹,该文件夹不要动
2.查看文件变化
git status
文件名会显示几种颜色
没有颜色:已经在版本仓库中了
红色:工作区变化了,但是还没有提交到暂存区
绿色:已经提交到暂存区了,但是还没有提交到版本库
3.工作区变更提交到暂存区
git add 文件名 # 只提交对应名称的文件
git add . # 提交当前路径下所有文件
4.设置作者
设置作者可以分为全局和局部,全局就是当前操作系统下的所有仓库提交版本库时都用这个作者
局部就是只针对当前仓库
git config --global user.email "邮箱"
git config --global user.name "名字"
# 带有--global 的就是全局,去掉就是局部
5.暂存区内容提交到版本库作为一个版本
git commit -m '注释' # 注释必须要写
6.查看版本信息
git log
git reflog # 更精简
7.工作区的变更回退
git checkout . # 将增加或修改的内容变为之前的状态,只能在还没有提交到暂存区的时候
8.把暂存区的东西拉回到工作区中
git reset HEAD
9.回到某个版本
提交版本库以后就会被版本管理,有一个版本号,可以根据版本号回退到任意版本
git reset --hard 版本号 # 版本号不需要写全,只需要是唯一识别就行了
总结:
记住的:
git add
git commit -m
git reset --hard 版本号
会用:
git init
git status
git log
git reflog
了解:
git checkout .
git reset HEAD
git config --global user.email "306334678@qq.com"
'''空文件夹不会被git记录,也就是说git不管空文件夹'''
git忽略文件
有些文件不需要被管理就需要将其设置为忽略文件
操作步骤
1.在仓库目录下新建.gitignore # 注意不要带后缀名
2.往里面写忽略文件名
写在.gitignore中的就会被忽略,但是已经被管理过的不会被忽略
忽略文件写法:
文件或文件夹名:代表所有目录下的同名文件或文件夹都被过滤
/文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤
例如:
a.txt:项目中所有a.txt文件和文件夹都会被过滤
/a.txt:项目中只有根目录下a.txt文件和文件夹会被过滤
/b/a.txt:项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤
*x*:名字中有一个x的都会被过滤(*代表0~n个任意字符)
空文件夹不会被提交,空包会被提交,包可以被提交(包中有一个init空文件)
git多分支
分支的作用
可以保证主分支的版本都是可以查看的版本,开发都在分支,开发完成以后再合并进主分支
分支操作
1.分支查看
git branch
2.分支创建
git branch 分支名
3.分支切换
git chechout 分支名
4.分支删除
git branch -d 分支名
分支合并
分支合并的时候需要弄清楚主次分支,将次分支合并进主分支先来到主分支上,然后执行合并命令
git merge 分支名
git远程仓库
首先需要在gitee上创建一个账号,账号创建好以后再创建仓库
操作步骤:
1.先设置好本地仓库
2.提交到本地版本库
3.创建远程仓库
4.设置用户邮箱
git config --global user.name "用户名"
git config --global user.email "邮箱"
5.由于我们是已有仓库
进入仓库所在路径
添加远程仓库地址,名字是origin,地址是https://gitee.com/zhouyangen/luffy_vue.git
git remote add origin https://gitee.com/zhouyangen/luffy_vue.git
将本地版本库推送到远程仓库
git push origin master
第一次推送本地版本库到远程仓库时需要输入用户名密码,之后就不用输了
ssh方式连接远程仓库
ssh方式需要公钥和私钥,公钥配置在gitee上,私钥保存在本地,以后再提交代码就不需要其他认证了
操作步骤:
1.生成公钥私钥
ssh-keygen -t ed25519 -C "邮箱"
命令窗口中执行然后一路下一步,公钥私钥生成在C:\Users\zyg\.ssh
2.公钥配置在gitee上
gitee中选中右上角头像点击设置,在左边有一个SSH公钥设置
3.由于之前origin对应的地址是https的,换成ssh提交代码需要将原来的https地址删除再添加成ssh的
git remote remove origin
git remote add origin git@gitee.com:zhouyangen/luffy_api.git
协同开发
管理员创建了仓库,对仓库有全部权限,其他人如果想看到我的代码需要管理员先将其设置为仓库的开发者
对于开发者而言本地没有代码,需要先将代码克隆下来
git clone git@gitee.com:zhouyangen/luffy_api.git
代码克隆下来以后用pycharm打开,配置好解释器,安装好依赖
代码开发完以后需要再提交到仓库
先提交到本地库,然后再讲本地库推到远程仓库
冲突解决
出现冲突可能是多人在同一分支开发,或者是合并分支出现冲突
如果出现冲突了,首先阅读代码,其次保留或删除自己或别人写的代码(如果要删除别人写的代码记得先打声招呼),如果想少出现冲突就勤拉取代码
线上分支合并
将远程的dev合并到master中,需要提交一个pr即Pull Requests,然后审核、测试、合并