我们现在的发布流程,很多功能分支,然后功能分支会合并到测试分支,测试没问题会把功能分支合并到待发布分支,待发布分支测试没问题,然后会把整个待发布分支合并到master分支,最后才发布。
git branch --contains 28598cd72c5df9501xxxx589c84c8
我们现在的发布流程,很多功能分支,然后功能分支会合并到测试分支,测试没问题会把功能分支合并到待发布分支,待发布分支测试没问题,然后会把整个待发布分支合并到master分支,最后才发布。git branch --contains 28598cd72c5df950199a68b456aeefd3589c84c8...
本文来自hahack,文章讨论了对子模块进行持续集成的三种方案,并利用自动化手段实现逐层往上提交子模块commitid从而触发主工程构建。这些构建结果为我们快速定位工程的编译问题提供了重要的线索。在中,我简单描述了我们一个项目的复杂程度:子模块、嵌套子模块、多分支。除了工程分支切换上的复杂,我们还遇到另一个问题:子模块持续集成。先说说主工程如何做持续集成。我们使用Gitlab自带的作为我们的持续集成系统。Android端的主工程的持续集成脚本如下:其中,CI_BUILD_REF_NAME指定要编译哪个分支的主工程。当我们推送代码到某个分支时,该分支下的持续集成脚本就会被调用,CI_BUILD_
自购买、自扫描、带书签,品质保证 第 1 章:入门篇 1.1 什么是 Git?为什么要学习它? 1.2 与其它版本控制系统的差异第2 章:环境安装2.1 安装在Windows 作业系统2.2 安装在Mac OSX 作业系统2.3 安装在Linux 作业系统2.4 图形化介面工具第3 章:终端机/ 命令提示字元3.1终端机及常用指令介绍3.2 超简明Vim 操作介绍第4 章:设定Git 4.1 使用者设定4.2 其它方便的设定第5 章:开始使用Git 5.1 新增、初始Repository 5.2 把档案交给Git 控管5.3 工作区、暂存区与储存库5.4 检视纪录5.5 状况题如何在Git 里删除档案或变更档名? 5.6 状况题 修改 Commit 纪录 5.7 状况题 追加档案到最近一次的 Commit 5.8 状况题 新增目录? 5.9 状况题 有些档案我不想放在 Git 里面... 5.10 状况题 检视特定档案的 Commit 纪录 5.11 状况题 等等,这行程式谁写的? 5.12 状况题 啊!不小心把档案或目录删掉了⋯ 5.13 状况题 刚才的 Commit 后悔了,想要 拆掉重做⋯ 5.14 状况题 不小心使用 hard 模式 Reset 了某个 Commit,救得回来吗? 5.15 冷知识 HEAD 是什么东西? 5.16 状况题 可以只 Commit 一个档案的部份的内容吗? 5.17 冷知识 那个长得很像乱码 SHA-1 是怎么算出来的? 5.18 超冷知识 在. git 目录里有什么东西? Part 1 5.19 超冷知识 在. git 目录里有什么东西? Part 2 第 6 章:使用分支 6.1 为什么要使用分支? 6.2 开始使用分支 6.3 对分支的误解 6.4 合并分支 6.5 状况题 为什么我的分支都没有「小耳朵」? 6.6 常见问题合并过的分支要留着吗? 6.7 状况题 不小心把还没合并的分支砍掉了,救得回来吗? 6.8 另一种合并方式(使用 rebase) 6.9 合并发生冲突了,怎么办? 6.10 冷知识 为什么大家都说在 Git 开分支「很便宜」? 6.11 冷知识 Git 怎么知道现在是在哪一个分支? 6.12 状况题 我可以从过去的某个 Commit 再长一个新的分支出来吗?第7 章:修改历史纪录7.1 状况题修改历史讯息7.2 状况题把多个Commit 合并成一个Commit 7.3 状况题把一个Commit 拆解成多个Commit 7.4 状况题想要在某些Commit 之间再加新的Commit 7.5 状况题想要删除某几个Commit 或是调整Commit 的顺序7.6 Reset、Revert 跟Rebase 指令有什么差别?第 8 章:标签 8.1 使用标签 8.2 冷知识 标签跟分支有什么不一样?第9 章:其它常见状况题与冷知识9.1 状况题手边的工作做到一半,临时要切换到别的任务9.2 状况题不小心把帐号密码放在Git 里了,想把它删掉⋯ 9.3 冷知识怎么样把档案真正的从Git 里移掉? 9.4 冷知识 你知道 Git 有资源回收机制吗? 9.5 冷知识 断头(detached HEAD)是怎么一回事?第 10 章:远端共同协作 - 使用 GitHub 10.1 GitHub 是什么? 10.2 Push 上传到 GitHub 10.3 Pull 下载更新 10.4 状况题 怎么有时候推不上去... 10.5 从伺服器上取得 Repository 10.6 常见问题 Clone 跟 Pull 指令有什么不一样? 10.7 与其它开发者的互动 - 使用 Pull Request(PR) 10.8 状况题 怎么跟上当初 fork 专案的进度? 10.9 状况题 怎么删除远端的分支? 10.10 状况题 听说 git push -f 这个指令很可怕,什么情况可以使用它呢? 10.11 使用 GitHub 免费制作个人网站 10.12 冷知识 一定要有 GitHub 才能得到别人更新的档案吗?第 11 章:使用 Git flow 11.1 Git Flow 是什么?为什么需要这种东西?
git reset --hard commit-id :回滚到commit-id,讲commit-id之后提交的commit都去除
git reset --hard HEAD~3:将最近3次的提交回滚
【远程代码库回滚】:
这个是重点要说的内容,过程比本地回滚要复杂
应用场景:自动部署系统发布后发现问题
修改Commit纪录
如果有特定档案不想放在Git里面一起备份或是上传到Git Server的话,例如:资料库密码,云端伺服器的金钥...可以加入.gitignore中
检视特定档案的commit纪录
想要知道某个档案的某一行是谁写的
在工作目录(working directory)想要复原不小心透过rm指令删除的档案
如果想重新编辑刚才的commit
新增Tag物件到Commmit物件
分支(branch)操作
该如何回复到上一次commit紀錄的状态?
Git其实是一种分散式的版本控制系统
Git的优点
Git是用快照(snapshot)在做版本控制的
Git的四大物件( Blob , Tree , Commit , Tag )观念介绍
$ git count-objects :可以检视目前有多少物件和用
我之前写了一篇文章吕海涛:深入理解 Gitzhuanlan.zhihu.com有朋友反馈说太拘泥于细节,缺少具体的例子。今天就从实际操作角度写一下 git 的原理。本文需要跟《深入理解 Git 》一文一起阅读。首先,我们使用 git init 初始化一个本地项目:.git 结构cd bar
$ git init
Initialized empty Git repository in ~/bar/...
bin/控制台 gitlog:branch [path_to_repo]
显示 repo 的分支。
bin/控制台 gitlog:commit [path_to_repo]
显示或导出日志。 该命令支持以下参数:
--limit=[(int)limit]:默认情况下它只显示/导出最后一次提交。 使用此参数来定位更多提交。
--start=[(int)start]:提交的起始偏移量。
--format=[array|json|md|console]:导出的格式。 默认情况下,导出显示到控制台。 如果选择了 md 格式,它会在目标 repo 中创建一个名为“gitlog”的目录,并将提取/结构化的注释保存到其中。
写入日志消息
为了让 gitlog 从提交消息中提取有用的信息,提交消息需要遵循一组简单的规则:
为本次提交项目的描述信息,但实际上是“记录缓存区的快照”,方便开发失误时能够“回退”
git push
提交到git仓库的当前分支,如果这一步能够正常执行,通常意味着您的项目已经成功提交
git remote add [别名] [远程地址]
给远程库的地址起别名
git remot
在git操作中,我们可以使用checkout命令检出某个状态下文件,也可以使用reset命令重置到某个状态,这里所说的“某个状态”其实对应的就是一个提交(commit).我们可以把一个git仓库想象成一棵树,每个commit就是树上的一个节点。家家都有一本自己的祖谱。祖谱记录了一个家族的生命史,它不仅记录着该家族的来源、迁徙的轨迹,还包罗了该家族生息、繁衍、婚姻、文化、族规、家约等历史文化的全过程。类似的,每个git仓库都有一本自己的祖谱,仓库中commitID的繁衍,HEAD指针的迁徙,分支的增加、更新,同样的记录着一个仓库从无到有的点点滴滴。在git中,我们其实可以通过^和~来定位某个具体
其中,`<commit>` 需要替换成具体的 commit 号或分支名。
请注意,如果你想导出的是某个文件或文件夹,可以使用 `git archive` 命令的 `--prefix` 参数。例如:
git archive --format=zip --output=/path/to/zipfile.zip --prefix=myfolder/ <commit> myfolder/
这样就会将 myfolder 文件夹下的文件导出到 zipfile.zip 中的 myfolder/ 文件夹下。