Git远程仓库Github
克隆项目
1.克隆远程仓库的命令
git clone https://github.com/zhangxiaochuZXC/test007.git
2.配置经理身份信息
cd Desktop/manager/test007/ git config user.name '经理' git config user.email 'manager@163.com'
3 .推送项目到远程仓库
add . # 暂存区提交到仓库区 git commit -m '立项' # 推送到远程仓库 git push
# 推送到指定分支
git push origin 分支名
4 如果在每次 push 都需要设置账号与密码,那么可以设置记住密码
设置记住密码(默认15分钟): git config --global credential.helper cache 如果想自己设置时间,可以这样做(1小时后失效): git config credential.helper 'cache --timeout=3600' 长期存储密码: git config --global credential.helper store
代码冲突
提示:多人协同开发时,避免不了会出现代码冲突的情况
原因:多人同时修改了同一个文件
危害:会影响正常的开发进度
注意:一旦出现代码冲突,必须先解决再做后续开发
代码冲突演练
1.张三先编辑login.py
文件代码
进入张三本地仓库:cd Desktop/zhangsan/test007 拉取服务器最新代码:git pull 编辑代码:num3 = 30 本地仓库记录版本:git commit -am '第三个变量' 推送到服务器仓库:git push 张三本地仓库和远程仓库代码如下:
2.经理后编辑login.py
文件代码
进入经理本地仓库:cd Desktop/manager/test007/ 编辑代码:num3 = 300 本地仓库记录版本:git commit -am '第三个变量' 推送到服务器仓库:git push 以上操作会出现代码冲突 提示需要先pull
3.解决冲突
原则:谁冲突谁解决,并且一定要协商解决
方案:保留所有代码 或者 保留某一人代码
解决完冲突代码后,依然需要add、commit、push
提示:如果张三执行pull
没有影响,就算真正解决了冲突代码
补充:
容易冲突的操作方式
多个人同时操作了同一个文件
一个人一直写不提交
修改之前不更新最新代码
提交之前不更新最新代码
擅自修改同事代码
减少冲突的操作方式
养成良好的操作习惯,先pull在修改,修改完立即commit和push
一定要确保自己正在修改的文件是最新版本的
各自开发各自的模块
如果要修改公共文件,一定要先确认有没有人正在修改
下班前一定要提交代码,上班第一件事拉取最新代码
一定不要擅自修改同事的代码
标签
- 当某一个大版本完成之后,需要打一个标签
-
作用:
- 记录大版本
-
备份大版本代码
模拟经理打标签
1.进入到经理的本地仓库test007 cd Desktop/manager/test007/ 2.经理在本地打标签 git tag -a 标签名 -m '标签描述' 例: git tag -a v1.0 -m 'version 1.0'
3.经理推送标签到远程仓库
git push origin 标签名
例:
git push origin v1.0
补充:删除本地和远程标签 # 删除本地标签 git tag -d 标签名 # 删除远程仓库标签 git push origin --delete tag 标签名
分支
作用:
区分生产环境代码以及开发环境代码
研究新的功能或者攻关难题
解决线上bug
特点:
项目开发中公用分支包括master、dev
分支master是默认分支,用于发布,当需要发布时将dev分支合并到master分支
分支dev是用于开发的分支,开发完阶段性的代码后,需要合并到master分支
模拟经理分支操作
1.进入到经理的本地仓库test007 cd Desktop/manager/test007/ 2.查看当前分支 git branch 没有创建其他分支时,只有master分支 3.经理创建并切换到dev分支 git checkout -b dev 4.设置本地分支跟踪远程指定分支(将分支推送到远程) git push -u origin dev 5.经理在dev分支编辑代码 6.管理dev分支源代码:add、commit、push
7.dev分支合并到master分支 提示:只有当dev分支合并到master分支成功,张三才能获取到num4 7.1 先切换到master分支 git checkout master 7.2 dev分支合并到master分支 git merge dev 7.3 经理推送合并分支操作到远程仓库 合并分支默认在本地完成,合并后直接推送即可 git push
8.张三同步经理合并后的num4 只有当张三同步代码成功,分支合并才算成功 cd Desktop/zhangsan/test007/ git pull
'''1. 从master分支切换到dev分支进行开发''' git checkout -b dev master # 从master分支创建dev开发分支 git branch # 可以看到现在已经切换到dev分支了 vim Readme # 模拟在项目中修改代码 git add . # 把工作区中所有变更全部提交到(暂存区) git commit -m 'in dev' # 把暂存区代码提交到本地git仓库(本地git仓库) git push origin dev # 把代码先推倒dev分支,让测试人员测试 '''2. 当测试人员测试完成后将dev分支代码合并到master形成文档版本''' git checkout master # 开发完成后,需要合并回master分支,先切换到master分支 cat Readme # 可以看到master分支的内容没有修改 git merge --no-ff dev # 将刚刚dev中修改的代码合并到master git push origin master # 将本地仓库的代码推送到线上仓库(线上git仓库)