一、git介绍
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git是目前世界上最先进的分布式版本控制系统
-
工作区暂存区和仓库区
工作区
对于添加、修改、删除文件的操作,都发生在工作区中 -
暂存区
暂存区指将工作区中的操作完成小阶段的存储,是版本库的一部分
-
仓库区
仓库区表示个人开发的一个小阶段的完成
仓库区中记录的各版本是可以查看并回退的
但是在暂存区的版本一旦提交就再也没有了
二、git创建仓库
地址(注册账号)
https://github.com/ 注册账号 763005825@qq.com 1q2w3e4rwsw
点击 Start a project
三、git克隆项目
- 克隆远程仓库的命令
cd Desktop/manager/
git clone https://github.com/zhangxiaochuZXC/test007.git - 配置经理身份信息
cd Desktop/manager/test007/
git config user.name ‘manage’
git config user.email ‘manager@163.com’ - 推送项目到远程仓库
# 工作区添加到暂存区 git add . # 暂存区提交到仓库区 git commit -m '立项' # 推送到远程仓库 git push
四、git解决代码冲突
-
代码冲突
提示:多人协同开发时,避免不了会出现代码冲突的情况
原因:多人同时修改了同一个文件
危害:会影响正常的开发进度
注意:一旦出现代码冲突,必须先解决再做后续开发 -
代码冲突演练
1.张三先编辑login.py文件代码
进入张三本地仓库:cd Desktop/zhangsan/test007
拉取服务器最新代码:git pull
编辑代码:num3 = 30
本地仓库记录版本:git commit -am ‘第三个变量’
推送到服务器仓库:git push2.经理后编辑login.py文件代码
进入经理本地仓库:cd Desktop/manager/test007/
编辑代码:num3 = 300
本地仓库记录版本:git commit -am ‘第三个变量’
推送到服务器仓库:git push -
解决冲突
原则:谁冲突谁解决,并且一定要协商解决
方案:保留所有代码 或者 保留某一人代码
解决完冲突代码后,依然需要add、commit、push
提示:如果张三执行pull没有影响,就算真正解决了冲突代码 -
补充:
容易冲突的操作方式
多个人同时操作了同一个文件
一个人一直写不提交
修改之前不更新最新代码
提交之前不更新最新代码
擅自修改同事代码 -
减少冲突的操作方式
养成良好的操作习惯,先pull在修改,修改完立即commit和push
一定要确保自己正在修改的文件是最新版本的
各自开发各自的模块
如果要修改公共文件,一定要先确认有没有人正在修改
下班前一定要提交代码,上班第一件事拉取最新代码
一定不要擅自修改同事的代码
五、git分支
作用:
区分生产环境代码以及开发环境代码
研究新的功能或者攻关难题
解决线上bug
特点:
项目开发中公用分支包括master、dev
分支master是默认分支,用于发布,当需要发布时将dev分支合并到master分支
分支dev是用于开发的分支,开发完阶段性的代码后,需要合并到master分支
-
进入到本地仓库test007
cd Desktop/manager/test007/
-
查看当前分支
git branch
没有创建其他分支时,只有master分支 -
创建并切换到dev分支
git checkout -b dev
-
设置本地分支跟踪远程指定分支(将分支推送到远程)
git push -u origin dev
-
在dev分支编辑代码
-
管理dev分支源代码:add、commit、push
-
dev分支合并到master分支
提示:只有当dev分支合并到master分支成功,张三才能获取到num4
7.1 先切换到master分支
git checkout master
7.2 dev分支合并到master分支
git merge dev
7.3 推送合并分支操作到远程仓库
合并分支默认在本地完成,合并后直接推送即可
git push -
同步合并后的num4
cd Desktop/zhangsan/test007/ git pull