Git工具的使用
Git概念
Git是一个免费的,开源的分布式版本控制系统,可以快速高效的处理大型项目或者小型项目
什么是版本控制?
版本控制是一种记录一个或者若干个文件内容的变化,以便将来查询特定的版本修订情况的系统
使用版本控制的好处
- 可以将某个版本回溯到之前的状态,甚至整个项目都可以退回到过去的某个时间点
- 就算整个项目的文件进行删删改改,照样也能回复到原来的样子
- 可以看到某个文件中变化的细节,可以找到别人修改的位置出现的异常,谁报告了某个功能缺陷等等
Git的安装
略
Git结构
代码托管中心
我们现在已经有了本地仓库 ,本地仓库是帮助我们进行版本的控制,为什么还需要代码托管中心呢?
它的任务是帮助我们进行远程仓库的维护
本地库和远程库的交互方式
团队内部协作
跨团队工作
初始化本地仓库
step1:首先创建一个文件夹
我这里是创建在了D盘
Step2:打开gitHere进行编码设置
git init
注意事项:.git目录下的本地库相关的子目录和子文件不要删除,不要乱动
常用命令
查看git的版本
git --version
清屏操作
clear
设置签名
设置用户名
$ git config --global user.name "nycss"
设置邮箱
$ git config --global user.email "269177@qq.com"
提交文件到本地仓库
step1:首先创建一个文件
step2:将文件提交到暂存区
git add Demo.txt
step3:将暂存区存储的内容提交到本地仓库
git commit -m "这是Demo.txt" Demo.txt
# -m 参数代表的是你提交的相关信息
注意事项
1. 不放在本地仓库中的文件,git是不会进行管理的
2. 即使放在本地仓库的文件,git也不会主动的进行管理,需要用add,commit命令操作才可以将内容提交到本地仓库
查看工作区和暂存区的状态
git status
提交我的Demo.txt文件
现在修改我的Demo2.txt这个文件,然后再来查看状态
重新提交到仓库
查看提交的日志
查看日志方式1:
git log
如果显示的日志一页放不下,会采用分屏的效果
下一页:空格
上一页:b
退出:q
查看日志方式2
git log --pretty=oneline
查看日志方式3
git log --pretty=oneline
查看日志方式4
git reflog
前进一个版本回退一个版本
我想让图中所指的版本进行回退 请使用reset命令
git reset --hard 02e40d6
相关参数
- hard参数
git reset --hard [索引]
本地库指针移动的同时,重置暂存区,重置工作区
2. mixed参数
本地库的指针移动的同时,重置暂存区,但是工作区不动
3. sort参数
本地库的指针移动的时候,暂存区和工作区都不动
删除文件,以及历史版本的找回
step1:创建一个Test.txt文件,提交到本地仓库
step2:删除工作区中的文件
step3:将删除操作同步到暂存区
提交到暂存区以后查看它的状态就是一个删除的操作
step4:将同步操作同步到本地库
step5 :查看日志
step6:版本回退
找回暂存区删除的文件
step1:删除工作区中的数据
rm Test.txt
step2:同步到缓存区
step3:回复缓存区中的数据
比对工作区和暂存区内容命令
step1:
创建一个文件提交到本地仓库
step2:
更改工作区中的内容,这就导致了工作区和暂存区不一致,让它们进行对比
step3:使用diff命令进行比对
比较暂存区和工作区中的差别
git diff 历史版本的索引 文件名
分支的管理
查看分支
git branch
创建分支
#$ git branch 分支名
$ git branch branch01
切换分支
git checkout branch01
分支冲突问题,解决方案
step1:
进入branch01分支,增加内容
step2:
切换分支到主分支
step3:
在主分支里面添加内容,并将其提交
step4:
回到branch01分支,然后查看内容
这个时候会发现每个分支只能查看自己分支里面的文件内容,不能查看其他分支里面的内容
step5:
将branch01分支合并到主分支
首先进入主分支
然后将branch01和主分支内容进行合并
出现冲突
什么情况下会出现冲突问题?
在同一个文件的同一个位置修改,出现冲突
step6:
冲突解决,留下你自己想要的内容
操作远程库GitHub
链接: GitHub官网链接.
在GitHub上创建一个自己的仓库
这里显示的是你创建的仓库
远程库地址
Git本地将地址进行保存,通过别名
为一个远程仓库起一个别名
查看别名
git remote -v
为远程库起别名
重新查看别名
可以通过别名进行拉取和推送
推送操作
$ git push origin master
第一次推送,它会让你登录。
这就推送成功了
克隆操作
找到以下地址
邀请团队合作
更新本地库的内容
推送到远程库
git push 别名 要推送到的分支
邀请成员加入团队
拉取操作
当团队里面有人提交了文件到远程仓库中,此时我的内容和远程仓库的内容就会不同步,所以现在要执行一下pull操作
pull操作相当于fetch+merge操作
IDEA集成Git
使用IDEA创建一个本地仓库
本地库和远程库的合并
当本地库和远程库没有什么联系的情况下使用这条命令
git pull origin master --allow-unrelated-histories
origin 这个代表我设置的远程库地址的别名
本地库推送远程库
使用git推送
使用idea工具推送
step1:首先将文件添加到暂存区
step2:将暂存区的文件添加到本地库
step3:将本地库的内容提交到远程库
将远程库克隆到本地
克隆到本地以后这个目录变成一个本地仓库,又变成了工作空间
IDEA如何解决冲突,避免冲突
最好是在开发的过程 先pull 然后再push