文章目录
- Git简单介绍
- 官方网址
- Git是什么
- 版本控制系统的演化
- Git安装 - Windows版
- 需要熟悉的几个Linux命令
- Git命令行状态对应目录位置
- Git命令
- 1. git init
- 2. git status
- 3. git add
- 4. git commit
- 5. git config
- 6. git reset
- 7. git diff
- 练习 - 创建学生管理系统
- 练习提交代码
- 练习修改代码后提交
- 练习版本回退
- git分支
- Git分支概念
- 开发
- 分支相关命令总结
- 1. 创建分支
- 2. 切换分支
- 3. 切换到上一个分支
- 4. 创建dev分支并切换到dev分支
- 5. 查看本地分支
- 6. 删除分支
- 7. 合并分支
- 开始使用github进行两地开发
- 在github上创建空仓库
- 将本地仓库代码提交到远程仓库
- 在github上创建包含文件(README.md和.gitignore)的仓库
- 先拉取远程仓库的代码
- 将本地版本推送到远程仓库
Git简单介绍
官方网址
https://git-scm.com
官方书籍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是一个免费开源的分布式版本控制系统,可用于高效的处理任何大大小小的项目
版本控制系统的演化
那么什么是分布式版本控制呢?
Git版本控制:https://blog.csdn.net/qq_29917503/article/details/127999471
Git安装 - Windows版
下载地址: https://git-scm.com/download/win
安装步骤: 修改一下安装目录,然后直接一路点击Next
,直到安装完成
需要熟悉的几个Linux命令
cd dirNmae #进入目录(改变目录)
pwd #显示当前所在目录
ls #列出当前目录的文件
ls -l #显示详细信息
ls -a#显示隐藏文件
cat #查看文件内容
touch#创建文件
echo + `>> | >` # 向文件输入内容
mkdir #创建目录
Git命令行状态对应目录位置
.(./): #当前目录
..(../): #上一级目录
~: #用户主目录
-: #上一次所在目录
Git命令
1. git init
作用
- 让git能够管理本地目录
- 创建一个本地版本库
执行完成git init
之后,本地目录变化
会在目录下创建一个
.git
的隐藏目录;这个
.git
隐藏目录就相当于本地版本库;默认创建了一个
master
分支(主干);
演示使用过程
-
创建a目录
-
进入a目录
-
执行
git init
2. git status
作用
查看版本库状态
红色 - Untracked File:未添加到暂存区的文件
哪些文件是红色的??
新增加文件
修改已经被git管理过的文件
手动删除的已经被git管理过的文件
手动重命名的已经被git管理过的文件
执行git add 文件..
,可以将红色变成绿色
绿色:添加到暂存区的文件,没有提交到版本库
执行
git commit -m "提交日志" 文件
,将文件添加到本地版本库
3. git add
作用
将文件添加到暂存区
将单个文件添加到暂存区
git add 文件
将所有未添加到暂存区的文件添加到暂存区
git add .
git add *
git add -A
4. git commit
作用
将暂存区的文件提交到本地版本库
如果后边不加具体文件,表示将暂存区所有文件提交到版本库
git commit -m “msg” 文件
可以将修改的版本库文件直接提交到本地版本库
git commit -am "msg" 文件
5. git config
作用
配置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'
6. git reset
作用
回退到指定版本
git reset --hard commit
回退版本库
回退暂存区
回退工作区
git reset --soft commit
回退版本库
不回退暂存区
不回退工作区
git reset --mixed commit
回退版本库
回退暂存区
不回退工作区
7. git diff
作用
对比文件内容
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>Index</title>
</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>Index</title>
</head>
<body>
<ul>
<li>录入学生</li>
<li>查询学生</li>
</ul>
</body>
</html>
将index.html直接提交到本地版本库
练习版本回退
开发聊天功能
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Index</title>
</head>
<body>
<ul>
<li>录入学生</li>
<li>查询学生</li>
<li>聊天</li>
</ul>
</body>
</html>
将聊天功能提交到本地版本库
客户要求撤销聊天功能
客户要求再加上聊天功能
git分支
Git分支概念
几乎所有的版本控制系统都以某种形式支持分支。使用分支意味着可以把我们的工作从开发主线上分离开来,以免影响开发主线。 在很多版本控制系统中,这是一个略微低效的过程(常常需要完全创建一个源代码目录的副本,对于大项目来说,这个过程会耗费很多时间)。
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>Index</title>
</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分支
分支相关命令总结
1. 创建分支
git branch dev
2. 切换分支
git checkout dev
3. 切换到上一个分支
git checkout -
4. 创建dev分支并切换到dev分支
git checkout -b dev
5. 查看本地分支
git branch -v
6. 删除分支
git branch -d dev
7. 合并分支
git merge dev
开始使用github进行两地开发
在github上创建空仓库
注册github账号,点击New Repository,创建仓库
填写仓库名称、描述…
将本地仓库代码提交到远程仓库
按照github提示,将本地仓库代码提交到远程仓库
在有本地仓库的情况下
1、关联本地仓库和远程仓库
git remote add 远程仓库别名 远程仓库地址
2、将本地版本库提交到远程
git push origin master
在github上创建包含文件(README.md和.gitignore)的仓库
点击New Repository,创建仓库
填写仓库名称、描述…(包含描述文件)
先拉取远程仓库的代码
先拉取远程仓库的代码
但是拉取的时候报错误: 拒绝合并不相关的历史版本
解决上面的问题
git pull(git fetch + git merge)
git fetch origin master
git merge --allow-unrelated-histories origin/master
将本地版本推送到远程仓库
合并完成之后,将本地版本推送到远程仓库
git push origin master