这是个上一篇的笔记 ,个人觉得最好的笔记是官网的,我只是做一个自己的notes
Git标签
- 给历史中的某一个提交打上标签,以示重要
- 查看标签
git tag- 正则表达式查询
git tag -l '*v1' - 查看标签信息
git show tagname - 创建标签 对当前的提交打上标签
- 轻量标签
git tag tagname[不需要参数选项指定]
- 附注标签
-
git tag -a v1.0 -m "message"
-
- 轻量标签
- 对过去的提交打上标签
git tag -a tagname 提交的校验码校验码很长,一般只需要写前五六位字母就可以,基本是唯一的,git可以准确识别到该次提交是哪一个提交- 推送标签到远程git仓库
- 因为
git push不会推送标签,你需要新的命令 git push origin tagname[推送单个标签]git push origin --tags[推送全部标签到服务器]- 删除本地标签
git tag -d tagnamegit push origin :refs/tags/tagname更新远程仓库标签删除- 检出标签
git checkout tagname- 若检出的标签处于分离头指针状态
detached head,则对标签下的内容做更改,再次提交的数据不属于任何分支 <提交无效,需要另外创建分支>
Git别名
- 编写配置文件
git config --global alias. ci commit使用git cigit config --global alias. unstage 'reset HEAD --'取消别名使用
Git分支
-
git的提交对象
- 作者姓名,邮箱
- 提交输入的提示信息
- 指向父对象的指针 [首次提交没有父对象,很容易理解啊]
-
git仓库的五个对象
-
三个blob对象 [保存文件快照]
-
一个树对象 [记录目录结构和blob对象索引]
-
一个提交对象 [包含树对象指针和所有提交信息]
-
创建分支
-
git branch newbranch -
git checkout -b branchname创建一个分支,并切换到该分支上面 -
HEAD特殊指针,指向当前所在的本地分支
-
分支切换
-
git checkout branchname -
分支切换,git会重置工作目录
-
分支切换会改变工作目录的内容,git会把该分支上最后一个提交快照给予当前的工作目录
-
git commit提交之后当前分支自动向前移动 -
分支合并
-
git merge branchname -
冲突解决,必须选择由
=====分割的上部分内容或者下部分内容 -
git mergetool可视化合并工具 -
查看当前分支列表
-
git branch带有*星号表示当前所处的分支 -
git bracnh -v查看每一个分支的最后一次提交 -
git branch --merged查看已经合并了的分支 -
git branch --no-merged查看没有合并的分支 -
分支管理
-
长期分支
- 保留完全稳定的代码
-
特性分支 [短期分支]
- 实现单一的功能所需
- 紧急修复
-
远程分支
git ls-remote origin显示远程分支的完整列表- 远程跟踪分支
- 是远程分支状态的引用
- 不能外部移动的本地分支 <有网络操作时候会自己移动>
git fetch origin同步远程服务器数据到本地 [就是抓取本地没有的远程服务器数据]
-
变基
-
回顾,
git merge的三方合并- 分别合并的两个分支
- 一个两者最近的公共祖先
-
git rebase origin将某一个分支上的修改移到另一个分支上 -
基变的原理
- 先找出两个分支的最近公共祖先
- 对比当前分支和最近公共祖先的提交历史
- 提取修改的补丁作为临时文件
- 当前分支指针转移到合并数据的分支上
- 把临时文件一次应用
本文深入讲解Git的标签、别名及分支管理技巧,包括如何创建、推送和删除标签,设置Git命令别名,以及理解分支的提交对象和仓库对象。同时,介绍了分支的创建、切换、合并与管理,以及远程分支的同步和变基操作。

185

被折叠的 条评论
为什么被折叠?



