git
版本控制器
完成 协同开发 项目,帮助程序员整合代码
i)帮助开发者合并开发的代码
ii)如果出现冲突代码的合并,会提示后提交合并代码的开发者,让其解决冲突
软件:SVN 、 GIT(都是同一个人的个人项目)
github、gitee(两个采用git版本控制器管理代码的公共平台)
git:集群化、多分支
git与svn比较
git的工作流程
版本间通信
分支管理
基本使用
-工作区,暂存区,版本库
-git init # 初始化仓库,生成一个.git 的文件夹
-git stauts # 查看状态(红色和绿色),必须全绿再提交到版本库
-git add . # 提交到暂存区
-git commit -m '文字' # 从暂存区提交到版本库
-git checkout . # 把工作区的代码恢复到版本库中最先的代码
-git reset . # 把暂存区的东西拉回到工作区(原来是绿的变红了)
-git reset --hard 版本号 # 回退到某个版本
-git config --global user.name '用户名' #配置全局用户名
-git config --global user.email '用户邮箱' #配置全局邮箱
分支操作
-分支
-git branch # 查看所有分支,如果分支是绿色,是再当前分支是
-git branch 分支名 # 创建分支
-git chekout dev # 切换到dev分支
-git chekout -b dev2 # 创建并切换到dev2分支
-git branch -d dev2 # 删除dev2分支,不能再这个分支上
-git merge dev # 你必须再其他分支(master),合并dev
远程连接
#远程连接一个空的仓库
mkdir lqz_test
cd lqz_test
git init
touch a.txt
git add a.txt
git commit -m "first commit"
git remote add origin xxx # 连接远程
git push origin master
#连接已有仓库
cd b
git remote add origin xxx
git push origin master
-git remote # 查看远程仓库(没有就看不到)
-git remote add origin xxx # 跟远程仓库建立连接
-git push origin master # 把本地的master分支提交到远程的origin,需要输入用户名和密码(之前存的需要删掉)
参与项目的开发
1. 访问项目的连接,将项目克隆到当前路径
-git clone xxx
克隆下的项目可以进行git的版本管理以及日志控制
也可以回退到任意版本
-git rest --hard 版本号 #回退到指定版本
-git checkout . #回退当前最新版
2. 本地提交
git status 查看操作的过文件
git add . 将文件提交到暂存区
git commit -m '注释' 将暂存区文件提交到版本库进行管理
git push origin master 提交到origin远程服务端下的master分支
3. 提交远程前一定要先将项目拉下来一遍
git pull origin master 将最新的版本导入到本地
#这样如果有冲突,可以直接查看并解决,而不是出现跳版本的问题
ssh和https连接
https连接,访问后需要输入账号和把密码才能提交
ssh则在配置之后不需要输入密码了
#如何配置ssh
-对称加密(加密和解密用同一套秘密)
-非对称加密(公钥和私钥),公钥加密,私钥解密
-生成一对公钥和私钥(用命令)
-https://gitee.com/help/articles/4181
-ssh-keygen -t rsa -C "hoeel@qq.com" 生成到用户家目录的.ssh文件夹下(一个公钥,一个私钥)
-把公钥复制出来,再码云上配置
-码云线上添加公钥:项目仓库 => 管理 => 部署公钥管理 => 添加公钥 => 添加个人公钥
协同开发
1.多名程序员在同一分支(一般是dev)上进行开发
2.项目代码本地开发,上传到服务器时,先pull将代码更新到最新版
3.然后在将没有问题的代码提交到dev分支
为什么更新代码时会出现冲突
当通过git pull origin master 拉下远程代码,同事和你修改了同一个位置,会冲突
出现冲突的前提:
1)不同开发者同时操作了同一文件
2)并且在相同行写了代码
在冲突位置会用头尾包含
<<<<<<< HEAD
你的代码
=======
别人代码
>>>>>>> origin/master
处理方案(需线下沟通解决)
-删除你的代码
-删除同时代码
-合并你们的代码
远程仓库回滚
"""
用dev分支举例
1)本地切换到远程要回滚的分支对应的本地分支
git checkout dev
2)回滚本地分支
git reset --hard 版本号
3)本地版本强行提交给服务器
git push origin dev -f
"""
分支合并出现冲突解决
# 1 远端创建一个dev分支
-在远端直接创建
-本地创建,提交到远端
git checkout -b dev
git push origin dev
# 2 本地新建一个dev_bug分支
-dev_bug分支改了文件
-dev分支改了同样的文件
-合并就出冲突
-git merge dev_bug (在dev分支上操作)
-解决冲突(删你的,同事的,合并起来)
-git add . git commit
-正常了,冲突解决
# 3 手动线下合并代码并提交到远程
-git checkout master
-git merge dev
-如果出冲突,解决
-git add .
-git commit
-git push..