目录
- 前言:
- 一、Git 是什么?
- 二、SVN与Git的最主要的区别?
- 三、Git 安装
- 四、git 配置
- 1. 创建仓库 - repository
- 2. 配置
- 3. 工作流与基本操作
- 五、Git 的使用流程
- 1. 仓库中创建 1.txt文件
- 2. 查看工作区的文件状态
- 3. 添加工作区文件到暂存区
- 4. 创建版本
- 5. 查看提交日志
- 6. 修复提交
- 7. 删除
- 8. 撤销重置
- 9. 比较
- 10. 分支
- 11. 标签
- 六、在使用指令时出现的问题
- 1. 显示乱码问题
- 2. 使用 git commit 指令出现以下问题
- 总结:
前言:
在工作中我们的项目一般都是多人合作完成的,这样就需要用到 git 了,跟随本文来一起学习把!
一、Git 是什么?
Git
是目前世界上最先进的分布式
版本控制系统。
工作原理 / 流程:
Workspace
:工作区Index / Stage
:暂存区Repository
:仓库区(或本地仓库)Remote
:远程仓库
二、SVN与Git的最主要的区别?
SVN
是 集中式
版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
Git
是 分布式
版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
三、Git 安装
Windows 下载地址:https://git-scm.com/download/win
点击下载后除了下图的步骤外,其他默认进行安装即可
四、git 配置
当安装完成后,在需要配置 git
的文件中,使用 cmd
进入 黑窗口
,或者右键点击 Git Bash Here
进入配置窗口中。
1. 创建仓库 - repository
进入希望纳入 git
版本控制的项目目录,使用 git init
初始化
git init
该命令将创建一个名为 .git
的子目录,这个子目录含有你初始化的 Git
仓库中所有的必须文件,这个目录也是上面我们说的三个区域之一,这个目录也是 Git
保存数据记录的地方,非常重要,如非必要,不要轻易改动。
当然我们很多人,是看不到
.git
的子目录的,这和我们电脑的设置有关,根据下图进行调整,就会显示出来了。
2. 配置
当创建完仓库后,需要设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改。
git config user.name "你的姓名"
git config user.email "你的邮箱"
-- global
通过 --global
选项可以设置全局配置信息
git config --global user.name "你的姓名"
git config --global user.email "你的邮箱"
检查配置
// # 打印所有config
git config --list
// # 打印指定config
git config user.name
3. 工作流与基本操作
当一个项目被 Git
初始化以后,只是表示我们希望通过 Git
来管理当前的这个项目文件的不同时期版本记录,但是这个时候项目中已存在的文件,或者以后新增的文件都是没有进入版本控制管理的,它们是 未追踪(Untracked)
的状态。
五、Git 的使用流程
1. 仓库中创建 1.txt文件
使用以下指令创建 1.txt
文件:
cd .> 1.txt
2. 查看工作区的文件状态
使用以下指令查看工作区的文件状态:
git status
使用
git status
查看状态,红色字体显示在工作区,绿色字体显示在暂存区
3. 添加工作区文件到暂存区
通过以下指令添加工作区文件到暂存区:
git add 1.txt
// # 添加多个文件
git add 2.txt 3.txt
// # 添加整个目录
git add ./a
// # 添加多个目录
git add ./b ./c
// # 添加所有文件
git add .
4. 创建版本
使用以下指令,将暂存区里的改动给提交到本地 git
仓库,也就是为这次工作(一般会把某个具有特定意义的工作作为一个版本,它可以是多个文件的变化)
git commit
// # 会调用默认(或自定义)的文本编辑器
// 直接在 cmd 中使用,无需打开编辑器
git commit -m "用简洁的语法把 git 仓库中的改动写出来"
备注信息中不要使用
空格
否则会报错。
5. 查看提交日志
通过以下指令查看提交日志:
// 完整格式
git log
// 简要格式(单行)
git log --oneline
6. 修复提交
使用以下指令使用修复(替换上一次)提交,在不增加一个新的提交版本的情况下将新修改的代码追加到前一次的提交中
git commit --amend -m 提交
7. 删除
通过以下指令可以删除文件:
// # 从 git 仓库与工作区中删除指定文件
git rm 文件
// # 只删除 git 仓库中的文件
git rm --cached 文件
// # rm 以后,需要 commit 这次操作,否则 rm 将保留在暂存区
git commit -m 修正
8. 撤销重置
git reset
从暂存区中撤销到工作区
// 从暂存区中撤销一个指定文件
git reset HEAD 文件名称
// 从暂存区中国年撤销所有文件
git reset HEAD .
该命令既可以用于回退版本
// # 回退到指定的 commitID 版本
git reset --hard commitID
9. 比较
通过以下指令可以进行比较:
// # 比较 工作区和暂存区
git diff 文件
// # 比较 暂存区和仓库
git diff --cached [commitId] 文件
// # 比较 工作区和仓库
git diff commitId filename
// # 比较 仓库不同版本
git diff commitId1 commitId2
10. 分支
我们的开发就像是游戏的任务,默认是在主线 (master)
上进行开发的。许多时候,还有各种支线任务,git
支持我们创建分支来进行项目开发。
查看分支
git branch
创建分支
git branch 分支名称
切换分支
git checkout 分支名称
// # 也可以使用 checkout -b 来新建分支
git checkout -b 分支名称
分支合并
// # B 合并到 A,需要切换到 A 分支
git merge 被合并分支
// # 查看已经合并的分支
git branch --merged
// # 查看未合并的分支
git branch --no-merged
删除分支
// # 如果分支为未合并状态,则不允许删除
git branch -d 分支名称
// # 强制删除
git branch -D 分支名称
合并记录
rebase
// # 合并 HEAD 前两个祖先记录
git rebase -i HEAD~2
~ : 纵向
^ : 横向
rebase 操作
# p, pick = use commit => 使用
# r, reword = use commit, but edit the commit message => 使用,但重新编辑说明
# e, edit = use commit, but stop for amending => 使用
# s, squash = use commit, but meld into previous commit => 使用,但合并上一次
# f, fixup = like "squash", but discard this commit's log message => 就像 squash 那样,但会抛弃这个 Commit 的 Commit message
# x, exec = run command (the rest of the line) using shell => 执行脚本
# d, drop = remove commit => 移除
git rebase -i HEAD~3
// # 弹出编辑器,根据需要的进行修改,然后保存
// # 如果为 r,s 则会再次弹出编辑器,修改新的 commit message,修改之后保存
如果出现一些问题,可以通过
git rebase --edit-todo
和git rebase --continue
进行重新编辑保存
合并冲突
有的时候,不同的分支可能会对同一个文件内容和位置上进行操作,这样在合并的过程中就会产生冲突
- 查看冲突文件
- 修复冲突内容
比较变更:
- 提交
git add .
11. 标签
有的时候,我们希望给某一个特定的历史提交打上一些标签。
新建 tag
git tag -a v1.0.0 HEAD/commitId
查看 tag
git tag
六、在使用指令时出现的问题
1. 显示乱码问题
如果文字显示为乱码执行以下指令:
// 进入windoes的cmd 然后分别输入以下五行
git config --global core.quotepath false
git config --global gui.encoding utf-8
git config --global i18n.commit.encoding utf-8
git config --global i18n.logoutputencoding utf-8
set LESSCHARSET=utf-8
2. 使用 git commit 指令出现以下问题
当需要提交文件到本地仓库时,使用 git commit
问题出现以下问题,输入 :wq
后回车解决问题。
总结:
欢迎大家加入我的社区,在社区中会不定时发布一些精选内容:https://bbs.csdn.net/forums/db95ba6b828b43ababd4ee5e41e8d251?category=10003
以上就是 git 的使用方法(上 - 指令),不懂得也可以在评论区里问我或私聊我询问,以后会持续发布一些新的功能,敬请关注。
我的其他文章:https://blog.csdn.net/weixin_62897746?type=blog