一、介绍
Git 是一个免费、开源的分布式版本控制系统,它可以记录文件的历史变更,并在不同版本之间进行切换和合并。
二、基础
配置个人信息(这样别人就能看到是谁参与了代码修改)
git config --global user.name "还是一个小白"
git config --global user.email xiaobai@xiaobai.com
(1)工作区(初始化仓库)操作
对文件夹下所有文件进行版本控制,可通过以下代码将当前目录变成一个工作区
git init
在一个 Git 项目中,这个工作区就指这个项目所在的本地目录,包括文件、文件夹等等,可以在其中进行编辑、删除或创建,例如图中所示:(与 .git (隐藏文件) 处于同位置的空间( taskList文件夹下 )都是一个工作区)
介绍以下两种状态(工作区)
- Untracked
表示工作区中新建的文件,且
未使用 git add
添加至暂存区
- Unstaged
表示
已使用 git add 添加
,已追踪,但修改完文件内容后未重新使用git add
再次追踪其最新内容
(2)暂存区(缓存区)操作
可通过以下代码将工作区的代码提交到暂存区
// 添加指定文件
git add <文件名>
// 添加全部修改过的文件
git add .
> 当对工作区中的文件进行了修改或新建后,将文件提交到 Git 仓库之前需要先将这些更改暂存到暂存区。暂存区实际上是一个缓存区域,保存了我们想要提交的更改
>每次提交到暂存区可以对比插入有变化或差异的文件,可以通过`git status`(查看当前的状态)查看当前 Git 工作区和暂存区的状态,展示哪些文件被修改过等等

### (3)本地仓库操作
命令:`git commit`
>可通过`git commit`将暂存区提交到仓库区,将暂存区所有代码提交到本地 Git 仓库中
>
*一般执行命令后会进入vim编辑器,可手动编辑其信息*
另一种快捷命令:`git commit -m "自定义注释信息"`
>相当于备注,自定义注释信息是为了方便后续查看变更记录或回溯历史版本
### (4) 分支管理操作
> 通常项目位于主分支上,直接在主分支上面修改可能会有一定的操作或者业务风险,于是就有能设置自己的代码操作位于某一条上分支上面的想法(并行操作,未合并时不会影响主分支上面的代码),最后确定修改再全部合并回主分支上面
```js
// 创建分支
git branch
// 切换分支
git checkout <分支名>
// 合并分支
git merge <分支名>
//删除分支
git branch -d <分支名>
(5) 远程仓库操作
根据项目存放的平台不同,可能有不同方法,常见的为 GitHub,Gitee
// 创建
git remote add <仓库名> <自己的仓库url地址>
// 推送本地仓库的代码进入远程仓库(推送后远程仓库会自动对比代码的差异,随后进行更新)
git push <远程仓库名> <分支名>(如果只有一条分支就是填入master)
// 拉取远程仓库的代码
git pull <远程仓库名> <分支名>
// 克隆远程仓库的代码
git clone <仓库地址>
(6) 撤销操作
// 查看提交记录
git reflog
// 撤销对文件的修改(工作区提交过来的内容),返回工作区,在工作区中修改的内容仍然保留
git reset HEAD <文件名>
// 将整个分支重置到某个特定的提交(硬撤销)
// 重置暂存区和工作区,丢弃所有未提交的更改,部分删除文件和新增文件可能恢复和删除
git reset --hard <commit-hash(哈希值)>
// 软撤销(与上面部分不同)
// 代码的修改仍会保留在暂存区,新增的文件保留,删除的文件消失,并且可以重新提交
git reset --soft <commit-hash>
// 混合模式-中性操作(默认)
// 代码的修改仍会保留在工作区,而不是暂存区,新增的文件保留,删除的文件消失,
git reset <commit-hash>
一些基本操作大概就这么多,后面会继续介绍业务上面的问题,例如如果代码冲突了等等
以上仅为自己学习过程中总结出来的操作,如有错误,欢迎指正