忽略文件.gitignore的配置
在我们的项目中,总有一些文件或者目录不想或者不能被纳入版本控制中。比如:日志文件、开发工具的配置文件等。
如果纳入版本控制后,会对团队中其他成员的项目造成影响:每次进行代码合并的时候都会产生冲突。因此,每个项目中都应该有一个.gitignore文件,来忽略不想被纳入版本控制的文件。
语法
- 每一行表示一个匹配规则
- git对于.ignore配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效
- 利用正则表达式对目录地址进行匹配
- 以 # 开头的行表示注释,可以使用反斜杠进行转义
- 以斜杠/结束的模式表示只匹配文件夹以及该文件路径下的内容,不匹配该文件
git的历史版本查看与版本回退
每一次 git commit 操作会提交一个历史版本,每一个历史版本对应一个hash值进行记录。因此,当我们想退回到指定版本找到对应的commit-id即可。
在git的版本管理中,有一个叫做`HEAD`的标记,这个标记就是一个用来指向当前版本的指针。因此,当我们进行版本回退或版本切换的时候,实际上是移动HEAD指针的位置。
git的版本回退操作
- 使用 git log 或者 git reflog 命令 获取到要回退或者切换的版本id
- 使用 git reset --hard命令回退/切换到某个历史版,git reset --hard 命令会重置 本地仓库、暂存区和工作区,三者的状态保持一致!
git reset
- git reset --soft :仅在本地版本库移动指针。
- git reset --mixed : 移动本地版本库的指针;重置暂存区。(默认的参数)
- git reset --hard : 移动本地版本库的指针;重置暂存区;重置工作区。
回退 n 个版本
git reset --hard HEAD~n
回退至指定版本
git reset --hard [索引值]
git tag
简单的理解,tag 就是 对某次 commit 的一个标识。有两种类型的标签 : 轻量标签(lightweight)、附注标签(annotated)
【轻量标签 】: 只是某个commit 的引用,可以理解为是一个commit的别名;
【附注标签】 :是存储在git仓库中的一个完整对象,包含打标签者的名字、电子邮件地址、日期时间 以及其他的标签信息。它是可以被校验的,可以使用 GNU Privacy Guard (GPG) 签名并验证。
创建本地标签
轻量标签
git tag [标签名]
git tag [标签名] [commit id]
附注标签
git tag -a [标签名称] -m [附注信息]
git tag -a [标签名称] [commit id] -m [附注信息]
若未指定版本(commit id)则默认为当前版本
删除标签
git tag -d 标签名称
远程标签
默认情况下,git push
命令并不会把标签推送到远程仓库中。因此,我们必须手动地将 本地的标签 推送到远程仓库中。
git push origin [标签名称]
git push origin --tags
删除标签
git push origin --delete [标签名称]