目录
1. 分支
git中分支的概念和svn及cvs等vcs系统总的概念是一样的,但实现机制不同,git中的分支更轻量,创建和删除分支的开销极小。
使用分支的一个典型场景: 1)你需要做一个新功能的开发 2)你创建了一个分支,在这个分支上进行新功能的开发 此时你接到上线系统有一个需求紧急修复的问题,你的做法是: 1)切换到线上系统对于的分支。 2)为修改紧急问题新建一个分支(例如:issue-191206) 3)在新建的分支中修改问题,测试通过后,合并这个修改到线上分支 4)切换回你的新功能开发分支继续新功能的开发。
1.1 分支创建
该命令用来创建分支
git branch 分支名
创建分支完成后,同时切换到刚创建的分支上
git checkout -b 分支名
1.2 查看分支
git branch
绿色的小信号表示当前所在的分支。
1.3 合并
1)首先切换到需要合并到的目标分支,例如A分支合并到B分支,则B分支为合并到的目标分支
2)执行合并命令
#这里的分支名是需要合并的分支名,如上例中提到的A分支
git merge 分支名
那么 我们需要到B分支上 执行 git merge A 把A分支合并到B分支上
1.4 切换分支
git checkout 分支名
1.5 删除分支
git branch -d 分支名
2. tag
tag代表了当前的提交节点,是当前节点的一个标记记录,tag的名字不能重复,tag也不可以修改,不能在一个tag上继续提交。 branch(分支)是代表的一个分支,可以分支上继续提交。
Git 支持两种标签:轻量标签(lightweight)与附注标签(annotated)。 轻量标签: 轻量标签很像一个不会改变的分支——它只是某个特定提交的引用
附注标签是存储在 Git 数据库中的一个完整对象, 它们是可以被校验的,其中包含打标签者的名字、电子邮件地址、日期时间, 此外还有一个标签信息
2.1 附注标签
$ git tag -a v1.4 -m "my version 1.4"
附注标签是存储在 Git 数据库中的一个完整对象。 它们是可以被校验的;其中包含打标签者的名字、电子邮件地址、日期时间;还有一个标签信息;并且可以使用 GNU Privacy Guard (GPG)签名与验证。 通常建议创建附注标签,这样你可以拥有以上所有信息。
2.2 轻量级标签
$ git tag v1.4-lw
通常我们使用的是轻量标签,一个轻量标签很像一个不会改变的分支,它只是一个特定提交的引用,本质上是将提交校验和存储到一个文件中,没有保存任何其他信息。 创建轻量标签,只需要提供标签名字
2.3 列出已有标签
$ git tag
2.4 查看签信息和与之对应的提交信息
$ git show v1.4
2.5 如何在后期打标签
有时需要通过前面的某次提交来打一个标签(比如忘记了及时打标签,后面才想起来)可以使用如下命令
## 查看提交记录
$ git log --oneline
ee07767 (HEAD -> master, tag: v1.0.0) modified f ff
19d7f5f modified
c90073d Merge branch 'dev' into master
cccca29 add f file
bf11147 add e file
## 通过指定的提交hash值来打标签
$ git tag -a v1.2 c90073d
查看提交记录 完整提交编号
$ git log --pretty=oneline
d90ed6f4780bd04a96fb202a9f2db502b7335fc3 (HEAD -> master, origin/master, origin/HEAD) add ccff.
3b32455087e3e0365fe0f24481e967c8f88fdb30 Merge branch 'text1.0'
5383997dde39e03e590fc6e40baa27b92359c4bc 测试cc
ec4ebc14a50efb1ffb062a282ee1d37239047e77 测试aa提交
4c9162eddb8f3074364912c7b724ff97792833be 修改冲突
f39c7ba336cf017bc3b64eb167b0a98f79e59b39 修改了bj
e145ff717c58b920e7ff9de0e59a84ee197bd037 修改好了的冲突
1dd02635e92f40621cad54f030e11931b7558498 修改bj.txt sss
a7369359260f04ed86d1bf0efd4d3084eada101a 修改了cc
aa9749b05bdfcf11c3eccf3ce2f5baf524b95431 测试文档pptx
676a5b58d7a70732ed207f937036fe188fe809c4 测试文件-bj
853368403e75b756ca5143c15fa20cb48ee59030 测试文件
## 通过指定的提交hash值来打标签
$ git tag -a v1.2 e145ff717c58b920e7ff9de0e59a84ee197bd037
2.6 通过指定的标签创建分支
$ git branch hotfix v1.0.0
hotfix 为分支名s
v1.0.0 为标签名
2.7 删除标签
$ git tag -d v1.0.0
//响应结果
Deleted tag 'v1.0.0' (was ee07767)
2.8 共享标签
git push 命令并不会传送标签到远程仓库服务器上。 在创建完标签后你必须显式地推送标签到共享服务器上。 这个过程就像共享远程分支一样——你可以运行 git push origin <tagname>
$ git push origin v1.5
Counting objects: 14, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (14/14), 2.05 KiB | 0 bytes/s, done.
Total 14 (delta 3), reused 0 (delta 0)
To git@github.com:schacon/simplegit.git
* [new tag] v1.5 -> v1.5
2.9 检出标签
$ git checkout v1.4
注意: 如果你做了某些更改然后提交它们,标签不会发生变化, 但你的新提交将不属于任何分支,并且将无法访问,除非通过确切的提交哈希才能访问。 因此,如果你需要进行更改,比如你要修复旧版本中的错误,那么通常需要创建一个新分支,创建方法请参见2.6
3. 配置ssh
首先进入git命令行
3.1 使用如下命令检查本机是否配置ssh
cd ~/.ssh
注:~代表当前用户的home目录
也可以直接查找
3.2 生成秘钥
ssh-keygen -t rsa
直接按三次回车(为什么按三下,是因为有提示你是否需要设置密码,如果设置了每次使用Git都会用到密码,一般都是直接不写为空,直接回车就好了) 生成的公钥和私钥存在的当前用户目录的.ssh目录中 用户名称可能有所不同(C:\Users\Administrator.ssh) 生成后 文件
3.3 配置gitee仓库
登录gitee 打开设置
添加完成后 点击确定 输入密码 添加成功后
效果:下方会有一个 ssh公钥数
3.4 测试ssh
ssh -T git@gitee.com
4. Idea中git使用
4.1 从远程仓库克隆
1)在新建项目时选择从git仓库克隆
2)复制要克隆的远程仓库的地址
3)将复制的地址粘贴到idea的url输入框
4)点击克隆即可:
4.2 在idea中新建一个项目,并push到gitee
1)新建一个java项目 2)创建git仓库
点击ok
3)加入暂存区
4) 提交
输入 说明后 点击commit即可
5)在gitee上创建一个与项目同名的空仓库,(可以不同名,但建议同名)
6)复制远程仓库的地址
7)为项目配置远程仓库
8)将项目推送到远程仓库
注: idea中有些特有的文件不需要提交 还有某些文件不需要提交时需要编写 gitignore文件