一、什么是git?
git即分布式版本管理控制工具,这工具的主要作用:
①代码还原
比如,某天小韩写完了一个项目,跑完了之后他觉得写的是一坨cook,然后他就准备改自己的代码,改完之后发现,诶~ 代码跑不起来了,之前的代码写无法还原了
②备份
③协同开发
可以明确每个人所管理的代码
每个人完成的代码分支与版本库之间的关系大致如图:
非线性的开发模式:允许多个分支并行开发,并且是完全分布式等等好处使得分布式版本控制玩爆集中式的版本控制;
二、git的工作流程
三、获取本地仓库
Git GUI:Git提供的图形化界面工具
Git Bash:Git的命令行工具
1.选择文件夹作为我们的仓库
2.在文件夹内git bash 并输入git init
3.成功初始化文件后文件夹内会有这个文
或者可以在Git Bash中用 ll -a命令查看,会有一个.git
四、git在本地的基本操作
Git在工作目录下对文件的修改会存在几个状态,这些状态会随着我们Git命令而发生改变;
当我们在工作目录下创建了文件,但是我们为暂存或者跟踪,Git是不会帮我们对文件进行管理的,所以得用Git命令来对我们的代码进行管理
1. git add (工作区 ---> 暂存区)
git add "文件名" 把某一个文件放入到暂存区内;
例如,我们先在工作目录下新建一个test.txt文件,然后在Git Bash中输入git status说明此文件还未被跟踪;
在输入git add test.txt后
这样test.txt就被添加到暂存区里了;
然后可以多次add将某个版本中要让git托管的文件放到暂存区里;
2. git commit (工作区 ---> 本地仓库)
格式:git commit -m "备注内容";
commit会把暂存区的内容全部都放到本地仓库中
3.git log
当日志过多时一页展示不完就会有一个冒号结尾
按下q推出,空格翻页,回车下一行
4.git reset --hard [commit id]
将代码回滚到commit id所对应的那次文件的内容;
5.git reflog
可以把每一步操作的commit id全都找到
当我们想忽略某些文件的时候可以在工作文件中配置.gitignore文件
五、git 分支常用命令
1.git branch
获取所有的git分支
如图说明有两个分支, *所指的文件代表当前所在的分支
2.git branch [分支名称]
作用:添加一个分支;
3.git checkout [分支名称]
作用:在分支之间进行切换
dev01分支中文件的内容
master分支中的文件内容:文件在不同分支之间切换时文件的内容也会同时发生改变;
git checkout -b 分支名 创建并进入分支;
输入以下代码可以获取自己的用户名与邮箱:
git config --global user.name //获取用户名
git config --global user.email //获取邮箱
修改用户名和邮箱
git config --global user.name 修改后的用户名
git config --global user.email 修改后的邮箱
六、IDEA中基础的git使用
(因为IDEA会自动检测git,所以配置很简单)
①本地的操作
1.先在左上角创建git仓库(创建时选择当前文件)
2.创建后IDEA提交页面会自动检测当前项目与本地仓库的不同的文件
在提交页面可以选择跟踪的文件,直接提交到本地的git仓库,也可以提交并推送直接保存到本地和远程仓库。提交时记得不能忘记备注,不然交不上去;
3.
提交后左下角的git标志可以看到操作的记录;在这个日志中有很多关于每个版本的信息,有每次提交的commit id等等
4.如果提交错误可以revert进行回滚
甚至你觉得回滚的不对,你可以回滚上次回滚;
②远程的操作
远程可以直接在本地提交时连带着一起提交,也可以在左上角的git那个栏中进行push
push的分支是当前所在的分支,进行push时要有我们git仓库的地址,这里推荐使用SSH,尽量别用HTTP因为比较麻烦,远程的名称默认的为origin
输入url之后发现,诶!!报错了
error: failed to push some refs to 'gitee.com:gao-juntao-23/orange_23.git';
🤔?为啥因为我本地的分支是master但是我这个分支并不是从远程的clone的,俩分支不一致所以就发生了报错。(这种流程只能给远程的仓库新建一个分支;)
那我们就要fetch把远程的仓库拉过来,这样就可以看到远程的分支了,然后切换到远程的分支就可以对远程的仓库进行操作了;