git的使用

git

版本控制器

完成 协同开发 项目,帮助程序员整合代码
	i)帮助开发者合并开发的代码
	ii)如果出现冲突代码的合并,会提示后提交合并代码的开发者,让其解决冲突

软件:SVN 、 GIT(都是同一个人的个人项目)
	github、gitee(两个采用git版本控制器管理代码的公共平台)

git:集群化、多分支

git与svn比较

img

img

git的工作流程

img

版本间通信

img

分支管理

img

基本使用

-工作区,暂存区,版本库
    
	-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..

原文地址:https://www.cnblogs.com/Henry121/p/13358559.html