GIT

1 篇文章 0 订阅
1 篇文章 0 订阅

Git简介

  • 作用:源代码管理
# 为什么要进行源代码管理
- 方便多人协同开发
- 方便版本控制
# Git管理源代码特点
1. Git是分布式管理服务器和客户端都有版本控制能力,都能进行代码的提交、合并、。。。
2. Git会在根目录下创建一个.git隐藏文件夹,作为本地代码仓库
# Git操作流程图
Git服务器-->本地仓库-->客户端-->本地仓库-->Git服务器

工作区暂存区和仓库区

  • 工作区:对于添加、修改、删除文件的操作,都发生在工作区中
  • 暂存区:指将工作区中的操作完成小阶段的存储,是版本库的一部分
  • 仓库区:表示个人开发的一个小阶段的完成
    • 仓库中记录的各版本是可以查看并回退的
    • 但是在暂存区的版本一旦提交就再也没有了

Git单人本地仓库操作

# 流程
# 安装git
sudo apt-get install git
密码:******23
# 查看git安装结果
git
# 创建项目
- 在桌面创建test文件夹,表示是工作项目
Desktop/test/
# 创建本地仓库
- 进入到test, 并创建本地仓库.git
- 新创建的本地仓库.git是个空仓库
cd Desktop/test
git init
# 配置个人信息
git config user.name '张三'
git config user.email 'zhangsan@163.com'
# 新建py文件
- 在项目文件test里面创建login.py文件,用于版本控制演示
# 查看文件状态
- 红色表示新建文件或者新修改的文件,都在工作区
- 绿色表示文件在暂存区
- 新建login.py文件在工作区, 需要添加到暂存区并提交到仓库区
git status
# 将工作区文件添加到暂存区
# 添加项目中所有文件
git add.
或者
# 添加指定文件
git add login.py
# 将暂存区文件提交到仓库区
- commit会生成一条版本记录
- -m后面是版本描述
git commit -m '版本描述'
# 接下来就可以在login.py文件中编辑代码
- 代码编辑完成后即可进行 add 和 commit 操作
- 提示:添加和提交合并命令
git commit -am '版本描述'
# 查看历史版本
git log
或者
git reflog
# 回退版本
* 方案一
- HEAD表示当前最新版本
- HEAD^表示当前最新版本的前一个版本
- HEAD^^表示当前最新版本的前两个版本, 以此类推...
- HEAD~1表示当前最新版本的前一个版本
- HEAD~10表示当前最新版本的前10个版本,以此类推...
git reset --hard HEAD^
* 方案二
- 通过每个版本的版本号回退到指定版本
git reser --hard 版本号
# 撤销修改
- 只能撤销工作区、暂存区的代码,不能撤销仓库区代码
- 撤销仓库区的代码就相当于回退版本操作
~撤销工作区代码:
git checkout 文件名
~撤销暂存区代码:
# 第一步:暂存区代码撤销到工作区
git reset HEAD 文件名
# 第二步:撤销工作区代码
git checkout 文件名
#  对比版本
- 对比版本库与工作区
git diff HEAD -- login.py
- 对比版本库
git diff HEAD HEAD^ -- login.py
#  删除文件:分为确定删除和误删
- 确定删除
# 删除文件
rm 文件名
# git确定删除文件, 对比添加文件git add
git rm 文件名
# 删除后记录删除操作版本
git commit -m '删除描述'
- 误删处理:撤销修改即可
# 删除文件
rm 文件名
# git 撤销修改
git checkout -- 文件名
Git 远程仓库
# 配置SSH公钥入口
账户下的settings属性
# 修改Github注册邮箱和用户名
vi .gitconfig
[user]
      email = zhangjiesharp@163.com
      name = zhangxiaochuZXC
# 生成公钥
 ssh-keygen -t rsa -C "zhangjiesharp@163.com"
# 删除旧公钥
rm -r .ssh
# 配置公钥

# 经理的工作
cd Desktop/manager/
 git clone git@github.com:zhangxiaochuZXC/test007.git
# 密钥错误
eval "$(ssh-agent -s)"
  ssh-add
# 推送项目到远程仓库
## 工作区添加到暂存区
git add .
# 暂存区提交到仓库区
git commit -m '立项'
# 推送到远程仓库
git push

# 张三的工作
# 克隆项目到本地
cd Desktop/zhangsan/
git clone git@github.com:zhangxiaochuZXC/test007.git
# 配置张三身份信息
cd Desktop/zhangsan/test007/
git config user.name '张三'
git config user.email 'zhangsan@163.com'
代码冲突
  • 提示:多人协同开发时,避免不了会出现代码冲突的情况
  • 原因:多人同时修改了同一个文件
  • 危害:会影响正常的开发进度
  • 注意:一旦出现代码冲突,必须先解决再做后续开发
# 容易冲突的操作方式
多个人同时操作了同一个文件
一个人一直写不提交
修改之前不更新最新代码
提交之前不更新最新代码
擅自修改同事代码
减少冲突的操作方式

# 养成良好的操作习惯,先pull在修改,修改完立即commit和push
一定要确保自己正在修改的文件是最新版本的
各自开发各自的模块
如果要修改公共文件,一定要先确认有没有人正在修改
下班前一定要提交代码,上班第一件事拉取最新代码
一定不要擅自修改同事的代码
标签
  • 当某一个大版本完成之后,需要打一个标签
  • 作用:
  • 记录大版本
  • 备份大版本代码
# 打标签流程
## 经理进入本地仓库test007
cd Desktop/manager/test007/
## 经理在本地打标签
 git tag -a 标签名 -m '标签描述'
 例:
 git tag -a v1.0 -m 'version 1.0'
# 经理推送标签到远程仓库
 git push origin 标签名
 例:
 git push origin v1.0
# 删除本地和远程标签
## 删除本地标签
git tag -d 标签名
## 删除远程仓库标签
git push origin --delete tag 标签名
分支
# 作用
研究新的功能或者攻关难题
解决线上bug
# 特点
分支使每个员工开发期的代码互不干扰
项目开发中公用分支包括master、dev
分支master是默认分支,用于发布,当需要发布时将dev分支合并到master分支
分支dev是用于开发的分支,开发完阶段性的代码后,需要合并到master分支
项目中每个项目成员都可以单独建立分支用于的代码开发,实现不交叉
# 模拟经理分支操作
## 进入经理本地仓库
 cd Desktop/manager/test007/
## 查看当前分支
git branch
## 创建并切换到dev分支
git checkout -b dev
## 管理dev分支源代码:add、commit、push(git push --set-upstream origin dev## dev分支合并到master分支
### 先切换到master分支
git checkout master
### dev分支合并到master分支
git merge dev
### 合并分支操作到远程仓库
git push
## 张三同步代码成功,分支合并才算成功
cd Desktop/zhangsan/test007/
git pull

# BUG 分支
有时当我们正在开发新功能时,出现了线上BUG。此时,必须暂停正在开发的功能,新建临时分支先解决线上BUG
## 张三切换到dev分支
git checkout dev
## 线上v1.0版本突然发现bug
### 暂停该工作,记录未提交的修改:保留现场
git stash
## 解决线上v1.0版本bug
### 切换到经理账户
### 新建fixbug分支,并下载v1.0版本的代码到fixbug分支
git checkout -b fixbuh v1.0
### 修复线上v1.0版本bug
### 管理fixbug分支代码 add  commit  push(git push --set-upstream origin fixbug)
### 合并fixbug分支到master分支,并推送到远程仓库
##### 切换到master分支
git checkout master
##### 合并fixbug分支到master分支
git merge fixbug
##### 推送合并到远程仓库
git push
## 经理打标签v1.1,发布v1.1版本
git tag -a v1.1 -m 'version 1.1'
git push origin v1.1
## 张三回复dev分支未提交的修改
git checkout dev
git stash lish
git stash pop
## 张三将fixbug分支合并到dev分支
git merge fixbug
git push
## 张三将dev分支合并到master分支,并推送
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值