由于业务需求量很大,所以项目分支很多,有时候有些功能点没有合并到某一个分支,当找到commit id之后,如何知道某个提交对应的分支呢?
使用如下命令即可,如下命令就可以看到改提交所属分支develop_analytics
git branch --contains 89eb2ac2838dde77dab032a8e3b82ae087fc30b0 --all
找到后就可以更好的有针对性的合并功能点
如何找到每个分支对应的提交点的commit id呢? 推荐使用SourceTree 可视化图形工具
参考
https://www.liaoxuefeng.com/wiki/896043488029600/1317161920364578
如图,可以清楚的显示各个分支的提交,使用起来也非常的简单
由于业务需求量很大,所以项目分支很多,有时候有些功能点没有合并到某一个分支,当通过sourcetree找到提交之后,如何知道某个提交对应的分支呢?使用如下命令即可 git branch --contains 89eb2ac2838dde77dab032a8e3b82ae087fc30b0 --all找到后就可以更好的有针对性的合并功能点...
bin/控制台
git
log:branch [path_to_repo]
显示 repo 的
分支
。
bin/控制台
git
log:
commit
[path_to_repo]
显示或导出日志。 该命令支持以下参数:
--limit=[(int)limit]:默认情况下它只显示/导出最后一次提交。 使用此参数来定位更多提交。
--start=[(int)start]:提交的起始偏移量。
--format=[array|json|md|console]:导出的格式。 默认情况下,导出显示到控制台。 如果选择了 md 格式,它会在目标 repo 中创建一个名为“
git
log”的目录,并将提取/结构化的注释保存到其中。
写入日志消息
为了让
git
log 从提交消息中提取有用的信息,提交消息需要遵循一组简单的规则:
为本次提交项目的描述信息,但实际上是“记录缓存区的快照”,方便开发失误时能够“回退”
git
push
提交到
git
仓库的当前
分支
,如果这一步能够正常执行,通常意味着您的项目已经成功提交
git
remote add [别名] [远程地址]
给远程库的地址起别名
git
remot
在
git
操作中,我们可以使用checkout命令检出某个状态下文件,也可以使用reset命令重置到某个状态,这里所说的“某个状态”其实对应的就是一个提交(
commit
).我们可以把一个
git
仓库想象成一棵树,每个
commit
就是树上的一个节点。家家都有一本自己的祖谱。祖谱记录了一个家族的生命史,它不仅记录着该家族的来源、迁徙的轨迹,还包罗了该家族生息、繁衍、婚姻、文化、族规、家约等历史文化的全过程。类似的,每个
git
仓库都有一本自己的祖谱,仓库中
commit
ID的繁衍,HEAD指针的迁徙,
分支
的增加、更新,同样的记录着一个仓库从无到有的点点滴滴。在
git
中,我们其实可以通过^和~来定位某个具体
Git
的
分支
合并主要依赖于checkout命令和cherry-pick 命令。cherry-pick就是从不同的
分支
中捡出一个单独的
commit
,并把它和你当前的
分支
合并。如果你以并行方式在处理两个或以上
分支
,你可能会发现一个在全部
分支
中都有的bug。如果你在一个
分支
中解决了它,你可以使用cherry-pick命令把它
commit
到其它
分支
上去,而不会弄乱其他的文件或
commit
。
本文来自hahack,文章讨论了对子模块进行持续集成的三种方案,并利用自动化手段实现逐层往上提交子模块
commit
id从而触发主工程构建。这些构建结果为我们快速定位工程的编译问题提供了重要的线索。在中,我简单描述了我们一个项目的复杂程度:子模块、嵌套子模块、多
分支
。除了工程
分支
切换上的复杂,我们还遇到另一个问题:子模块持续集成。先说说主工程如何做持续集成。我们使用
Git
lab自带的作为我们的持续集成系统。Android端的主工程的持续集成脚本如下:其中,CI_BUILD_REF_NAME指定要编译哪个
分支
的主工程。当我们推送代码到某个
分支
时,该
分支
下的持续集成脚本就会被调用,CI_BUILD_
修改
Commit
纪录
如果有特定档案不想放在
Git
里面一起备份或是上传到
Git
Server的话,例如:资料库密码,云端伺服器的金钥...可以加入.
git
ignore中
检视特定档案的
commit
纪录
想要知道某个档案的某一行是谁写的
在工作目录(working directory)想要复原不小心透过rm指令删除的档案
如果想重新编辑刚才的
commit
新增Tag物件到Commmit物件
分支
(branch)操作
该如何回复到上一次
commit
紀錄的状态?
Git
其实是一种分散式的版本控制系统
Git
的优点
Git
是用快照(snapshot)在做版本控制的
Git
的四大物件( Blob , Tree ,
Commit
, Tag )观念介绍
$
git
count-objects :可以检视目前有多少物件和用
git
reset --hard
commit
-id :回滚到
commit
-id,讲
commit
-id之后提交的
commit
都去除
git
reset --hard HEAD~3:将最近3次的提交回滚
【远程代码库回滚】:
这个是重点要说的内容,过程比本地回滚要复杂
应用场景:自动部署系统发布后发现问题
git
常用命令
有时会遇到
git
branch -a时总是不出现新的
分支
或者远程已经没有的
分支
在本地还有,这时就需要更新下本地的
git
分支
保持和远程
分支
一致,使用下面命令即可:
git
remote update origin --prune
其中,`<
commit
>` 需要替换成具体的
commit
号或
分支
名。
请注意,如果你想导出的是某个文件或文件夹,可以使用 `
git
archive` 命令的 `--prefix` 参数。例如:
git
archive --format=zip --output=/path/to/zipfile.zip --prefix=myfolder/ <
commit
> myfolder/
这样就会将 myfolder 文件夹下的文件导出到 zipfile.zip 中的 myfolder/ 文件夹下。