官方书籍Pro Git第二版地址
https://www.git-scm.com/book/zh/v2
Git十周岁之际,Linus Torvalds大谈Git开发故事(来自CSDN)
https://blog.csdn.net/AlvinPanda/article/details/77411157
Git是一个免费开源的分布式版本控制系统,可用于高效的处理任何大大小小的项目
那么什么是分布式版本控制呢?
Git版本控制:https://blog.csdn.net/qq_29917503/article/details/127999471
下载地址: https://git-scm.com/download/win
安装步骤: 修改一下安装目录,然后直接一路点击Next
,直到安装完成
cd dirNmae #进入目录(改变目录)
pwd #显示当前所在目录
ls #列出当前目录的文件
ls -l #显示详细信息
ls -a#显示隐藏文件
cat #查看文件内容
touch#创建文件
echo + `>> | >` # 向文件输入内容
mkdir #创建目录
.(./): #当前目录
..(../): #上一级目录
~: #用户主目录
-: #上一次所在目录
作用
- 让git能够管理本地目录
- 创建一个本地版本库
执行完成git init
之后,本地目录变化
会在目录下创建一个
.git
的隐藏目录;这个
.git
隐藏目录就相当于本地版本库;默认创建了一个
master
分支(主干);
演示使用过程
创建a目录
进入a目录
执行git init
作用
查看版本库状态
红色 - Untracked File:未添加到暂存区的文件
哪些文件是红色的??
新增加文件
修改已经被git管理过的文件
手动删除的已经被git管理过的文件
手动重命名的已经被git管理过的文件
执行git add 文件..
,可以将红色变成绿色
绿色:添加到暂存区的文件,没有提交到版本库
执行
git commit -m "提交日志" 文件
,将文件添加到本地版本库
作用
将文件添加到暂存区
将单个文件添加到暂存区
git add 文件
将所有未添加到暂存区的文件添加到暂存区
git add .
git add *
git add -A
作用
将暂存区的文件提交到本地版本库
如果后边不加具体文件,表示将暂存区所有文件提交到版本库
git commit -m “msg” 文件
可以将修改的版本库文件直接提交到本地版本库
git commit -am "msg" 文件
作用
配置git配置文件
git的三类配置
配置级别 | 命令 | 配置文件 | 优先级 |
---|---|---|---|
本地版本库 | git config --local | .git/config | 最高 |
用户级别 | git config --global | ~/.gitconfig | 其次 |
系统配置 | git config --system | 安装目录/etc/gitconfig | 最低 |
添加配置方式1
git config --local user.name 'et2001'
git config --local user.email 'et2001@et.com'
--local
可以替换成--global
或者--system
添加配置方式2
git config --local --add user.name 'etoak'
注意:如果已经存在了配置,这个命令会追加一条
查看配置
git config --local -l
--local
可以替换成--global
或者--system
删除配置
git config --local --unset user.name
注意:
如果有user.name多个值,那么删除的时候一定要加上指定的值
git config --local --unset user.name 'et'
修改配置
git config --local --replace-all user.name 'etoak'
作用
回退到指定版本
git reset --hard commit
回退版本库
回退暂存区
回退工作区
git reset --soft commit
回退版本库
不回退暂存区
不回退工作区
git reset --mixed commit
回退版本库
回退暂存区
不回退工作区
作用
对比文件内容
git diff --staged index.html
git diff --cached index.html
对比暂存区和版本库
git diff index.html
对比工作区和暂存区文件差异
git diff HEAD index.html
对比工作区和版本库文件差异
1、创建student目录
2、进入student目录
3、执行git init,初始化本地版本库
创建index.html,开发 录入学生 的功能
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Indextitle>
head>
<body>
<ul>
<li>录入学生li>
ul>
body>
html>
把index.html添加到暂存区
把index.html提交到本地版本库
开发查询学生 功能
修改index.html,增加查询学生功能
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Indextitle>
head>
<body>
<ul>
<li>录入学生li>
<li>查询学生li>
ul>
body>
html>
将index.html直接提交到本地版本库
开发聊天功能
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Indextitle>
head>
<body>
<ul>
<li>录入学生li>
<li>查询学生li>
<li>聊天li>
ul>
body>
html>
将聊天功能提交到本地版本库
客户要求撤销聊天功能
客户要求再加上聊天功能
几乎所有的版本控制系统都以某种形式支持分支。使用分支意味着可以把我们的工作从开发主线上分离开来,以免影响开发主线。 在很多版本控制系统中,这是一个略微低效的过程(常常需要完全创建一个源代码目录的副本,对于大项目来说,这个过程会耗费很多时间)。
Git 处理分支的方式可谓是难以置信的轻量,创建新分支几乎可以在瞬间完成,并且在不同分支之间的切换操作也是十分便捷。 与其它版本控制系统不同,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。
步骤
1、先创建dev分支
2、切换到dev分支
3、在dev分支开发举手功能,开发到50%,提交版本库
4、线上代码出现bug,需要紧急修复bug
5、切回master分支
6、创建bug分支
7、切换到bug分支
8、修复bug
9、测试完成之后,切换到master,合并bug分支代码
10、删除bug分支
11、切回dev分支,继续开发剩余50%
12、开发完成之后,提交到本地版本库
13、切回master分支
14、合并dev分支
15、删除dev分支
详细步骤
- 在master分支上创建dev分支
- 切换到dev分支
- 开发举手功能,开发到50%,提交到本地版本库
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Indextitle>
head>
<body>
<ul>
<li>录入学生li>
<li>查询学生li>
<li>聊天li>
<li>举手 - 50%li>
ul>
body>
html>
线上代码出现bug,需要紧急修复bug
切回master分支
- 创建bug分支,并切换到bug分支
解决查询学生功能的bug
将解决的问题后的代码提交到本地版本库
- 测试完成之后,切换到master,合并bug分支代码
- 删除bug分支
- 切回dev分支,继续开发剩余50%
- 开发完成之后,提交到本地版本库
- 切回master分支
- 合并dev分支
有可能会出现冲突
git merge dev
- 删除dev分支
git branch dev
git checkout dev
git checkout -
git checkout -b dev
git branch -v
git branch -d dev
git merge dev
注册github账号,点击New Repository,创建仓库
填写仓库名称、描述…
按照github提示,将本地仓库代码提交到远程仓库
在有本地仓库的情况下
1、关联本地仓库和远程仓库
git remote add 远程仓库别名 远程仓库地址
2、将本地版本库提交到远程
git push origin master
点击New Repository,创建仓库
填写仓库名称、描述…(包含描述文件)
先拉取远程仓库的代码
但是拉取的时候报错误: 拒绝合并不相关的历史版本
解决上面的问题
git pull(git fetch + git merge)
git fetch origin master
git merge --allow-unrelated-histories origin/master
合并完成之后,将本地版本推送到远程仓库
git push origin master