2021-03-27 Git与Github

本文详细介绍了Git和GitHub在版本控制和协同开发中的应用。讲解了Git的基本操作,如初始化仓库、提交、回退、分支管理和合并。同时,介绍了GitHub的使用,包括添加远程仓库、拉取和推送代码,以及非合作者通过fork进行协作。此外,还探讨了在IntelliJ IDEA中使用Git的图形界面操作和Gitflow工作流模式,为开发者提供了完整的Git与GitHub实践指导。
摘要由CSDN通过智能技术生成

Git与Github

版本管理系统

作用

  • 协同开发
  • 冲突解决
  • 版本管理
  • 代码备份
    • 版本记录
    • 版本还原
    • 历史追查
  • 权限管理
    • 代码审查
  • 分支管理

分类

  • 集中管理:CVS、VSS、SVN
  • 分布式管理:Git、Mercurial、Bazaar、Darcs

Git

分布式版本控制系统

Git结构

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Git工具

  • 命令行工具
  • 可视化工具
  • Idea插件
  • GitHub网站

Git基本操作

# 初始化仓库:生成隐藏目录 .git
git init

# 设置用户 项目级别
git config user.name "usrname"
git config user.email "email"
# or 设置全局 系统用户级别 没有特殊配置下新建项目使用全局用户
git config --global xxxxx

# 查看工作区、暂存区状态
git status
# 添加到暂存区
git add filename
# 将暂存区内容提交到本地库
git commit -m "comment" [filename]

# 查看历史记录
git log
git log --pretty=oneline

# 版本回退硬回退 重置暂存区和工作区
git reset --hard HEAD^ # 回退到当前版本前一个版本
git reset --hard HEAD~2 # 当前版本回退两个版本
git reflog # 查看本地操作记录
# 版本穿越
git reset --hard version_id # 回退到对应版本

# 还原文件
git checkout --filename
# 删除文件
# 删除后再次git add后提交

多版本管理-branch

# 查看分支
git branch -v
# 新建分支
git branch branchname
# 切换分支
git checkout branchname

# 合并分支
# e.g. 将test01功能合并到master
# 先切换到主分支master 然后
git merge test01

# 合并时发生冲突
## 报告冲突
## 冲突会显示在冲突文件中
## or 显示冲突内容
git diff
## 编辑冲突文件
## 提交修改后的文件
## 再次merge
# P.S.分支文件并不会修改,如要修改,需要切换到分支合并master

GitHub

Git项目托管网站,主要提供基于Git的版本托管服务

对于collaborator

在这里插入图片描述

# 搭建本地仓库

# 在GitHub新建Repo
# 复制仓库地址 SSH
# 增加远程地址 git remote add <远端代号> <远端地址> 远端代号可自定义
git remote add  origin SSH
# 推送到远程库 git push <远端代号>  <本地分支名称>
git push origin master

# 另一个user
# 从GitHub上克隆一个项目 git clone <远端地址> <新项目目录名>
git clone SSH [name]

# 从GitHub更新项目 git pull <远端代号> <远端分支名>
git pull origin master

# 协作冲突 e.g.修改本地文件时文件在GitHub被其他人修改
## 此时无法push 需要先pull最新的版本 再进行修改

对于非collaborator:fork

  • fork代码库
  • 修改后通过code>>new pull request 申请对原项目进行修改
  • 原代码库owner审核pull request后merge pull request

在Idea中使用Git

  • settings → Version Control → Git 选择本地的Git.exe的位置
  • settings → Version Control → GitHub 填写网站登录的用户名密码

图形界面操作

Idea_Git

Gitflow

多分支管理

在这里插入图片描述

  • 主干分支 master
    主要负责管理正在运行的生产环境代码,永远保持与正在运行的生产环境完全一致
  • 开发分支 develop
    主要负责管理正在开发过程中的代码,一般情况下应该是最新的代码
  • bug修理分支 hotfix
    主要负责管理生产环境下出现的紧急修复的代码, 从主干分支分出,修理完毕并测试上线后,并回主干分支;并回后,视情况可以删除该分支
  • 发布版本分支 release
    较大的版本上线前,会从开发分支中分出发布版本分支,进行最后阶段的集成测试;该版本上线后,会合并到主干分支;生产环境运行一段阶段较稳定后可以视情况删除
  • 功能分支 feature
    为了不影响较短周期的开发工作,一般把中长期开发模块,会从开发分支中独立出来; 开发完成后会合并到开发分支

Idea中的分支管理

Idea_branch

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值