玩转 Git 三剑客
苏玲
携程代码平台负责人
60828 人已学习
新⼈⾸单¥68
课程目录
已完结/共 62 讲
第三章:Git与GitHub的简单同步 (4讲)
第五章:Git集成使用禁忌 (2讲)
玩转 Git 三剑客
登录|注册
留言
7
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 49 | 如何挑选合适的分支集成策略?
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程综述
02 | 安装Git
03 | 使用Git之前需要做的最小配置
04 | 创建第一个仓库并配置local用户信息
05 | 通过几次commit来认识工作区和暂存区
06 | 给文件重命名的简便方法
07 | 通过git log查看版本演变历史
08 | gitk:通过图形界面工具来查看版本历史
09 | 探密.git目录
10 | commit、tree和blob三个对象之间的关系
11 | 小练习:数一数tree的个数
12 | 分离头指针情况下的注意事项
13 | 进一步理解HEAD和branch
14 | 怎么删除不需要的分支?
15 | 怎么修改最新commit的message?
16 | 怎么修改老旧commit的message?
17 | 怎样把连续的多个commit整理成1个?
18 | 怎样把间隔的几个commit整理成1个?
19 | 怎么比较暂存区和HEAD所含文件的差异?
20 | 怎么比较工作区和暂存区所含文件的差异?
21 | 如何让暂存区恢复成和HEAD的一样?
22 | 如何让工作区的文件恢复为和暂存区一样?
23 | 怎样取消暂存区部分文件的更改?
24 | 消除最近的几次提交
25 | 看看不同提交的指定文件的差异
26 | 正确删除文件的方法
27 | 开发中临时加塞了紧急任务怎么处理?
28 | 如何指定不需要Git管理的文件?
29 | 如何将Git仓库备份到本地?
30 | 注册一个GitHub账号
31 | 配置公私钥
32 | 在GitHub上创建个人仓库
33 | 把本地仓库同步到GitHub
34 | 不同人修改了不同文件如何处理?
35 | 不同人修改了同文件的不同区域如何处理?
36 | 不同人修改了同文件的同一区域如何处理?
37 | 同时变更了文件名和文件内容如何处理?
38 | 把同一文件改成了不同的文件名如何处理?
39 | 禁止向集成分支执行push -f操作
40 | 禁止向集成分支执行变更历史的操作
41 | GitHub为什么会火?
42 | GitHub都有哪些核心功能?
43 | 怎么快速淘到感兴趣的开源项目?
44 | 怎样在GitHub上搭建个人博客
45 | 开源项目怎么保证代码质量?
46 | 为何需要组织类型的仓库?
47 | 创建团队的项目
48 | 怎样选择适合自己团队的工作流?
49 | 如何挑选合适的分支集成策略?
50 | 启用issue跟踪需求和任务
51 | 如何用project管理issue?
52 | 项目内部怎么实施code review?
53 | 团队协作时如何做多分支的集成?
54 | 怎样保证集成的质量?
55 | 怎样把产品包发布到GitHub上?
56 | 怎么给项目增加详细的指导文档?
57 | 国内互联网企业为什么喜欢GitLab?
58 | GitLab有哪些核心的功能?
59 | GitLab上怎么做项目管理?
60 | GitLab上怎么做code review?
61 | GitLab上怎么保证集成的质量?
62 | 怎么把应用部署到AWS上?
登录 后留言

全部留言(7)

  • 最新
  • 精选
长风大侠
推荐使用 git push --force-with-lease 代替 git push -f 在多人协作开发时,相对安全

作者回复: 嗯,--force-with-lease 在下面的场景有用处:几个人一起开发某个功能,共享远端的某个特性分支;在开发的初期,代码变动比较频繁,为了灵活地做变动,可能在某个时期,这几个开发人员约好了暂时不把分支保护起来,待稳定后再设置为不运行 -f 。 在这个阶段,需要特别注意:如果你 fetch 之后在本地的 origin 相关分支上已经看到了别人的提交,依然进行强制推送,你还是会覆盖别人的提交。也就是说,--force-with-lease 解决的是本地仓库不够新时,依然覆盖了远端新仓库的问题,如果你执意想要覆盖远端提交,只需要先 fetch 再推送,它也不会拒绝的。 在使用 git push --force-with-lease 命令被拒绝时,可以先 fetch 仓库,然后确认其他人是否对此分支有新的修改,如果没有,就可以继续强制推送。

2019-01-04
9
长风大侠
git merge —squash 本身merge就支持squash方式合并,并不是github自己创造的,也不是用rebase -i做的 选项里的rebase and merge其实就是rebase,并没有merge,这里的merge的意思是合并并不是git merge里的merge

作者回复: 👍 理解得到位

2019-01-03
2
8
可乐要加冰
老师您好,rebase and merge的操作,把北京分支的commits都加到了master后面,是直接移过去嘛,还是移之前要与master分支的最新的commit整合一下,然后再移过去

作者回复: 课件上beijing合入到master,GitHub系统帮我们自动处理了,从beijing分支上把新增的commit的内容一个一个的复制到master分支上,创建了新的commit,但文件变更的内容与beijing分支的commit是一样的。 至于你提到特性分支合入到主干之前,是否应该和master先整合,这个得看你们团队具体情况了。 之前没有类似GitHub或GitLab这些平台的时候,我们往往要求开发人员在本地基于远端分支做rebase,本地测试ok后再推到远端去。随着代码平台提供了类似 squash、rebase 等合并策略,平台会自动帮我们处理特性分支与主干集成的事务,再加上平台越来越强的在线CI服务,我们对本地是否与master集成的要求越来越弱化了。

2019-07-06
1
Washington
谢谢老师的精彩讲解。 请问能否在terminal把您在GitHub图形界面的运用的三个merge button操作写一下呢?比如,在terminal是如何实现merge commit,squash and merge以及rebase and merge。 谢谢!
2019-01-09
5
change
1、git merge 带squash参数则合并后特性分支上的多个commit会合并成一个commit,不带squash参数则特性分支上的多个commit在合并后会原样体现出来; 2、git rebase:相当将特性分支上的多个commit在主分支上进行多次重放的效果;
2020-03-29
1
陈立
老师讲的真好
2022-05-13
脑子是个好东西
老师您好,如果我依次上线ABCD四个版本,每次上线后更新一下master并打tag,现在只想回退B版本内容,其余ACD在master上均不变,有什么好的办法吗?还是只能回退到A的状态,再依次提交CD?
2022-03-17
1
收起评论