Git && GitHub

第一章 为什么要学Git?

  • 必点天赋。
  • 必然趋势。

 

第二章 Git的简介和安装

2.1 Git的简介

  • Git是目前世界上最先进的分布式版本控制系统。

2.2 版本管理系统能干什么?

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

2.3 集中管理型版本管理

  • 经典的集中管理型:CVS、VSS、SVN。
  • 特点:
  • ①实现了大部分开发中对版本管理的需求。
  • ②结构简单,上手容易。

 

  • 集中管理型版本管理的问题:
  • ①版本管理的服务器一旦崩溃,硬盘损坏,代码如何恢复?
  • ②程序员上传到服务器的代码要求是完整版本,但是程序员开发过程中想做小版本的管理,以便追溯查询,怎么破?
  • ③系统正在上线运行,时不时还要修改bug,要增加好几个功能需要好几个月,如何管理几个版本?
  • ④如何管理一个分布在世界各地、互不认识的大型开发团队?

2.4 分布式版本管理

 

  • 分布式版本管理的优点:
  • ①容灾能力强。
  • ②本地版本管理。
  • ③异地协作。
  • ④灵活分支。 

2.5 常见的Git工具

2.5.1 命令行工具

2.5.2 IDEA插件

2.5.3 GitHub

2.5.3 Git的图形化界面

2.6 Git for Windows的安装

 

 

第三章 Git实战操作

3.1 设置用户名和邮箱

3.1.1 准备工作

  • 在G盘新建git-project目录。

3.1.2 初始化git版本仓库

  • 命令:
git init

 

  •  示例:

3.1.3 设置项目级别的用户名和密码

  • 命令:
git config user.name "需要配置的用户名"
git config user.email "需要配置的邮箱"

 

  •  示例:

3.1.4 设置系统级别的用户名和密码

  • 命令:
git config --global user.name "需要设置的用户名"
git config --global user.email "需要设置的邮箱"

 

  • 示例:

3.2 提交文件

3.2.1 查看文件状态

  • 命令:
git status

 

  • 示例:

3.2.2 将文件添加到暂存区

  • 命令:
git add 文件名(或目录名)

 

  • 示例:

3.2.3 提交文件到本地库

  • 命令:
git commit -m "注释"

 

  • 示例:

3.3 查看文件提交记录

  • 命令:
# 查看历史记录
git log 文件名
# 简易查看历史记录
git log --pertty=online 文件名

 

  • 示例:

3.4 回退历史

  • 命令:
# 回退到上一次提交
git reset --hard HEAD^
# 回退到n次操作
git reset --hard HEAD~n 

 

  • 示例:

 

3.5 版本穿越

  • 命令:
# 查看历史记录的版本号
git reflog 文件名(目录名)
# 版本穿越
git reset --hard 版本号

 

  • 示例:

3.6 还原文件

  • 命令:
# 没有将修改的文件提交到暂存区,如果将修改的文件提交到了暂存区请先回退到上个版本
git checkout -- 文件名

 

  • 示例:

3.7 删除文件

  • 命令:
#先删除文件再git add,git commit提交

 

  • 示例:

3.8 工作区+暂存区+本地库

  • 工作区:电脑本地硬盘目录。
  • 暂存区:一般存放在.git目录下的index文件中。
  • 本地库:工作区中有个隐藏目录.git,它就是Git的本地版本库。

3.9 分支

3.9.1 分支的引入

  • 系统上线了,但是产品经理又提出了新的需求,评估一下工期需要两个月,但是同时系统正在上线运行,时不时还需要修改bug,如何管理几个版本?

3.9.2 查看当前分支

  • 命令:
git branch -v

 

  • 示例:

3.9.3 创建分支

  • 命令:
git branch 分支名

 

  • 示例:

3.9.4 切换分支

  • 命令:
git checkout 分支名

 

  • 示例:

 

3.9.5 合并分支

  • 示例:
#先切回需要合并的分支
git checkout 分支名
#合并分支
git merge 另一个分支名

## 比如需要将dev分支的文件合并到master分支上,那么命令如下
## git checkout master
## git merge dev

 

  • 示例:

 

3.9.5 冲突

3.9.5.1 冲突的原因
  • 冲突一般指同一个文件同一位置的代码,在两种版本合并时版本管理软件无法判断到底应该保留哪个版本,因此会提示该文件发生冲突,需要程序员手工判断解决冲突。 
3.9.5.2 合并时冲突
  • 程序合并时发生冲突系统会提示CONFLICT关键字,命令行后缀会进入MERGING状态,表示此时是解决冲突的状态。 

 

  •  示例:

 

3.9.5.3 解决冲突
  • 此时通过git diff可以找到发生冲突的文件及冲突的内容。 

 

  • 示例:

 

 

  • 修改冲突文件内容,再次git add 文件和git commit -m “提交注释”提交文件,后缀MERGING消失,表明冲突解决完成。

 

  • 示例:

 

第四章 GitHub简介、和Git的协同办公

4.1 GitHub是什么?

  • GitHub是一个Git项目托管网站,主要提供基于Git的版本托管服务。 

4.2 GitHub的网址

4.3 注册账号的注意事项

  • 不要使用163的邮箱,有可能收不到验证邮件。
  • 较长时间不使用有可能被GitHub冻结账号。请登录其客服页面https://github.com/contact,填写账号恢复申请。

4.4 GitHub的使用流程

4.4.1 团队协作

4.4.1.1 图解

4.4.1.2 创建本地库、配置用户名和邮箱以及提交文件
  • 命令: 
# 创建本地库
git init
# 配置用户名和邮箱
git config user.name "用户名"
git config user.email "邮箱"
# 新建文件bixiejianfa.txt
# 将文件加入到暂存区
git add bixiejianfa.txt
# 提交文件
git commit -m "辟邪剑法"

 

  • 示例: 

4.4.1.3 登录GitHub,创建项目,增加远程地址
  • 命令:
# 远程代码一般为origin
# 远程地址就是GitHub上的项目的地址url
git remote add 远程代号 远程地址

 

  • 示例:在GitHub上创建项目 

 

  • 示例:增加远程地址

4.4.1.4 推送到远程库
  • 命令:
# 远程代号是指远程链接的代号。
# 分支名是指要提交的分支名称,比如master
git push 远程代号 本地分支名

 

  • 示例:

 

4.4.1.5 邀请协作者
  • 示例:

4.4.1.6 clone项目
  • 命令:
git clone 远程地址 新项目目录名(可以省略,如果省略,默认是项目名)

 

  • 示例: 

4.4.1.7 修改完之后,推送项目
  • 命令: 
# 配置user.name 和user.email 
git config user.name "用户名"
git config user.email "邮箱"
# 修改文件
git add 修改的文件名
# 提交文件
git commit -m "注释"
# 远程代码 git clone之后,远程代码默认为origin
git push 远程代码 本地分支

 

  •  示例:

4.4.1.8 拉取项目
  • 命令:
# 远程代号指的是远程链接的代号
# 远程分支名值得是远程的分支名称
git pull 远程代号 远程分支名

 

  • 示例:

 

4.4.2 团队外协作

  • 略。

 

第五章 在IDEA中操作Git

  • 略。

 

第六章 Git工作流

6.1 Git开发流程

  • 集中式工作流。
  • GitFlow工作流。

6.2 集中式工作流

  • 像SVN一样,集中式工作流以中央仓库作为项目所有修改的单点实体。所有修改都提交到Master这个分支上。
  • 这种方式与SVN的主要区别就是开发人员有本地库。Git很多特性并没有用到。

6.2 GitFlow工作流

  • GitFlow工作流通过为功能开发、发布准备和维护设立了独立的分支,让发布迭代过程更流畅。严格的分支模型也为大型项目提供了一些非常必要的结构。

 

  • 示例:

 

 

  • 示例:

6.2.1 分支的种类

  • 主干分支 master:主要负责管理正在运行的生产环境代码。永远保持和正在运行的生产环境完全一致。
  • 开发分支 dev:主要负责管理正在开发过程中的代码。一般情况下应该是最新的代码。
  • 热修复分支 hot fix:主要负责管理生产环境下出现的紧急修复的代码。从主干分支分出,修理完毕并测试上线后,合并到主干分支。合并完之后,视情况可以删除该分支。
  • 发布版本分支 release:较大版本上线前,会从开发分支中分出发布版本分支,进行最后阶段的集成测试。该版本上线后,会合并到主干分支。生产环境运行一段阶段稳定后可以视情况删除。
  • 功能分支 feature:为了不污染开发分支,会从开发分支独立出功能分支。开发完成后会合并到开发分支。

 

转载于:https://www.cnblogs.com/xuweiweiwoaini/p/11403219.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值