文章目录
前言
Git是一个强大的分布式版本控制系统,它能够追踪代码变更,支持并行开发,保障数据安全,提升协作效率。“代码会变,但历史永存”
一、Git是什么?
git是一个开源的分布式版本控制系统,能够实现代码的管理,团队编写,版本回溯等功能。分布式就是因为有本地仓库、远程仓库,和maven很像。
二、准备远程仓库
去码云(gitee)注册账号,生成个人仓库。
要使用git对我们的代码进行控制,首先要获得git远程仓库,常用的方法是从远程仓库克隆或者是本地初始化一个git仓库。
三、Git的基本工作流程与文件状态
1.工作流程
版本库:我们看到的.git隐藏文件夹就是版本库,其中存储了很多配置信息,日志信息和文件版本信息等。
工作区:本地文件系统的实际文件(你直接编辑的代码),包含了.git的文件夹。
↓
↓git add 提交文件,从工作区进入暂存区
↓
暂存区:通过git add提交的文件,此时为待提交状态,进入暂存区,就是.git文件夹里面的index文件,里面存储了代码文件。
↓
↓git commit,从暂存区提交文件至本地仓库
↓
本地仓库:通过git commit将暂存区的变更永久保存到本地历史记录中。
↓
↓git push再从本地仓库至远程仓库
↓
远程仓库:通过git push将本地提交同步到远程服务器如github,gitee,实现团队共享。
↓
↓git pull从远程仓库拉取同步代码
↓
本地仓库
用一下别人的图
2.工作区中的文件状态
- untracked未跟踪状态,未被纳入版本控制
- tracked已跟踪状态,纳入版本控制,它又分为unmodified未修改状态,modified已修改状态,staged已暂存状态。
- Untracked (未跟踪)
│
│ git add
↓
Modified (已修改) ←─ 文件被编辑
│
│ git add
↓
Staged (已暂存) staged意味着已经放入暂存区
│
│ git commit
↓
Committed (已提交)
四、常用命令
记得鼠标右键,显示更多信息,点击Git Bash Here(Git的命令终端),进行命令的控制。
1.全局设置命令
- 设置用户名
git config --global user.name "xxx"
- 设置邮箱
git config --global user.email "xxx"
- 查看配置信息
git config --list
- 远程仓库复制
git clone + 远程仓库地址(在gitee里面复制)
2.本地仓库操作
- 本地初始化
前提是要cd进需要进行创建的文件目录里。
git init
- 添加文件至暂存区
git add index.java
- 查看文件状态
git status
这里就看见添加进暂存区的文件了,此时是
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: index.java
- 取消暂存或切换版本
你会看见红色和绿色的字体,红色的就代表没有进入缓存区(暂存区),绿色的代表进入了缓存区
取消暂存:
git reset --hard index.java
切换版本:
可以输入获取日志进行寻找版本号
git log
git reset --hard + 版本号
- 提交文件
git commit -m "commment" index.java
提交后你看不见后说明提交成功了。
3.远程仓库操作
- 查看远程仓库
git remote -v
- 为本地仓库添加一个新的远程仓库
git remote add origin + 远程仓库地址
- 将本地仓库的文件推送至远程仓库
注意需要进行身份验证
git push origin + 分支名(master)
- 拉取远程仓库至本地仓库
git pull origin + 分支名(master)
如果本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且上传时远程仓库中存在文件,就会报unrelated histories错误,此时我们只需要在pull后面加上–allow-unrelated-histories即可。
git pull origin + 分支名(origin)--allow-unrelated-histories
4.分支操作
分支意味着我们可以在同一个代码仓库中多个分支,各个分支互不干扰,相互独立。
- 列出所有本地分支
git branch
- 列出所有远程分支
git branch -r
- 列出所有本地和远程分支
git branch -a
- 创建分支
git branch branch01(分支名)
- 切换分支
git checkout branch01(分支名)
- 合并分支
git merge branch01(分支名)
在合并的时候如果两个分支含有同样的文件,合并的话这个时候就会有乱码,手动处理文件的乱码后再进行提交就解决了,后面我们使用idea进行处理。
7. 上传分支
git push origin branch01
仓库名+ 分支名
5.标签操作
Git中的标签,指的是某个分支的某个特定时间点的状态,通过标签可以快速切换至标记时的状态,说白了就是定格一个版本,比如王者荣耀29赛季版本,王者荣耀30赛季版本。
- 列出所有的标签
git tag
- 创建标签
git tag v1.0(标签名)
- 将标签推送至远程仓库
git push oringin(远程仓库名) v1.0(版本名)
- 检出标签
表示新建一个分支来指向某个标签
git checkout -b branch01(分支名) v1.0(版本名)
总结
Git 是一个 分布式版本控制系统,Gitee是一个远程代码管理仓库,其多分支以及多标签能够让版本切换与历史回溯非常方便,后面我们使用idea工具的时候就更加的清晰。