之前说 这个年代 不会点Git真不行
于是去研究了一下Git这颗后悔药
下载、安装和配置
去到https://git-scm.com/官网下载即可
在终端中使用 git --version查看git的版本
使用 git config --global user.name "" 和 git config --global user.email "" 创建用户和联邮箱
使用 git config --list (或git config -l)查看用户列表
创建"仓库"
在IDEA的Terminal中直接输入git init 用ls -la查看就发现了目录文件下面已经存在了.git的文件,这些文件是隐藏的。
使用git init 直接加名称,在创建文件的同时进行"仓库"的搭建
或者从github上直接克隆、下载到git
复制地址之后 使用git clone https://github.com/xxxxx 进行克隆到本地
基本用法
git status ==> 查看仓库状态
下图显示 No commits yet ,说明还没有历史节点,并说明了以下文件都属于比较危险的状态
所以我们需要进行新建
git add . ==> 将所有文件添加至暂存区
之后再次使用git status命令查看状态,发现之前红色的文件都变色了,说明他们暂时安全了
git commit -m "版本描述" ==> 提交版本或备注描述信息
在提交完版本描述之后,我们再次使用git status查看状态,提示我们nothing to commit,working tree clean。说明所有的更改都保存了
在这个时候,也说明。我们已经有一颗"后悔药"了!,即是我们已经有一个可回溯节点了。
git log ==> 查看详细日志信息
git log -p 可以查询具体修改了什么
在输入 git log 之后,我们可以看到 commit 之后有很长一段字符,可以理解为这个节点的"名字"、"身份证号",用来绝对定义这个节点。
回溯!吃"后悔药"!
git reset --hard 456ba1a84e007da35e5e611737aeec9de2581932 (commit后面的"身份证",ps:7位以上即可)
如上图,我希望将 blog demo v1.2 版本的代码回溯到 v1.1 的时候
输入 git reset --hard 456ba1a84e007da35e5e611737aeec9de2581932之后可以看到提示
HEAD is now at cca2043 blog demo v1.1版本
点击Version Control也可以查看版本间的区别和改动
如果有文件被误删掉,可以使用git checkout来找回
git checkout xxx (误删的文件名)
三种状态
modified 已修改 ==> staged 已暂存 ==> committed 已提交
staged 是缓冲阶段,以防错误引入了较大的文件,防止错误的引入
tag标签
我们的代码版本,有小修小改的过程,但当我们的代码大版本确立的时候,就相当于一个里程碑节点,这个时候就需要tag标签用来注解
git tag -a 标签名 -m "备注"
并使用 git tag 查看有多少tag标签
使用 git show 查看 tag 标签的详细信息,诸如是谁添加的,添加了什么内容等
如果之前有小的版本我也想用来添加tag标签,但他们的时间节点已经是过去式了,怎么办呢?
这时使用 git tag -a v0.5 -m "备注" + "身份证号" 可以给之前历史记录的回溯节点添加tag标签
我们也可以使用 git checkout v1 来回溯名称为v1的tag标签节点
分支与合并分支
类似于在不同的时间线创造一个平行世界,在一个节点创造出一个分支
使用 git branch "分支名称" 创建分支
在项目中,分支一般用来处理一个节点的 bug 问题,找到中间的节点 不影响后面正在开发的时间线,可以用来"救火"
在 master下使用 git merge "分支名" 用来合并分支
然后需要在IDEA中手动删除多余的关于提示的代码 "========="
分支 救火之前...
合并分支 救火之后...
远程仓库
在 local 本地创建一套仓库,并且在很远很远的其他地方远程备份另一套仓库,内容都是一样的,甚至可以在添加后续节点的时候,也一样同步过去。
在github上我们创建一个远程仓库 并获得一个url地址
git remote add "远程名称" "远程地址url"
例如这里 我们使用 git remote add github https://github.com/evenyao/easy-blog-demo.git
git remote 可以显示所有连接的远程仓库
使用 git push -u "远程名" "分支名" 上传代码
并确认github用户名/密码
然后我们刷新 github 页面,发现代码已经上传上去了,也可以看到之前我们创建的仓库版本
然后在需要容灾的时候 使用 git clone "远程仓库url" 进行拷贝
多人远程协作
git clone "远程仓库url" "用户标记"
例如 git clone https://github.com/evenyao/easy-blog-demo.git even
git clone https://github.com/evenyao/easy-blog-demo.git root
在 even 和 root 的协作过程当中,even修改了文件,添加了工程中的一项代码
在even进行 git add. && git commit -m "v1.1" 添加版本上传之后,root需要使用 git pull 将even修改之后代码拖下来
然后再次进行修改,并也使用 git add. && git commit -m "v1.2" 添加版本上传之后,even之后也使用 git pull 将root修改的代码拖下来