玩转 Git 三剑客
苏玲
携程代码平台负责人
60828 人已学习
新⼈⾸单¥68
课程目录
已完结/共 62 讲
第三章:Git与GitHub的简单同步 (4讲)
第五章:Git集成使用禁忌 (2讲)
玩转 Git 三剑客
登录|注册
留言
13
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 40 | 禁止向集成分支执行变更历史的操作
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上?
登录 后留言

全部留言(13)

  • 最新
  • 精选
五月
如果真有人这么做了,那其他的同事该如何解决.是像之前那些一样通过git pull ?

作者回复: 怎么可能? 先是狠狠地臭骂一通;然后找到是谁干的,比如毛毛;接着其他同事会把rebase前的commit恢复出来,比如commitA;要求毛毛在commitA基础上把自己的变更在此基础上恢复。 当然,现在的代码平台对集成分支都提供了保护机制,团队可以设置保护分支,以便禁止开发人员执行 push -f 的行为。 话说回来,团队成员还是得懂这个道理,否则,平台给了再好的机制可能还会有问题。

2019-01-19
7
在路上
请教,对于自己在本地的多次commit,我想把他合并成一次commit,还没有push的情况下,能否做rebase操作?

作者回复: 这种情况最适合用rebase了

2019-05-05
6
catlin
如果确实已经误操作了,如何找回原来的commit呢?

作者回复: reflog 命令查看一下,还有的救

2019-02-13
4
小狼
老师,那假如就是有人对集成分支做了变基,修改提交历史的操作,那其他人该如何做才能达到和变基一样的历史呢?使用 git pull rebase 吗?

作者回复: git pull --rebase,或者分两步走:先把远端分支fetch到本地,再把本地的当前分支基于fetch下来的远端分支做 rebase 。

2019-01-05
2
唐朝农民
老师,集成分支禁止rebase,多人协作是一般都会有 各个仓库的merge,怎么保证集成分支的commit是线性的呢?

作者回复: 如果线性对你们团队很重要的话,办法肯定是有的。比如master为集成分支,且要求版本历史为线性,假设在GitHub平台上,首先为master分支设置Branch protection rule(不允许直接push),勾选“Require pull request reviews before merging。 其次,Merge Button选择“Allow squash merging”或者“Allow rebase merging”,不要选“Allow merge commits”。 建议动手验证一下。

2019-01-05
2
FLYPoPo
老师,如果要做某个公共项目的翻译项目,采用什么样的组织方式比较合适呢?原项目如果有新的提交翻译分支应该如何处理?

作者回复: 很好的问题。你们的组织形式是怎样的?有哪些困难? 不妨把情况说具体一些。

2019-03-30
2
Will
老师加油,期待更新!

作者回复: 已更新,加油

2019-01-01
注意: 1:在主干分支上禁止使用git push -f 因为可能会抹掉其他的提交节点,假如有些东西提交了想回滚,那就修改后再提交 2:在主干分支上禁止使用变更提交历史的命令 因为会抹掉一些历史提交信息,我们貌似一直使用rebase,主要是不喜欢混乱的提交线,不过也没出现什么问题,合代码出问题主要集中在合并冲突时,有些代码调整的存在问题。 自己的分支随意,自己可以完全掌控,自己完全负责。公共分支是公地,不要做出影响他人的行为。
2020-03-01
4
公孙老身
这节课的案例是在本地变基之后使用git push -f推送上去的吗
2022-03-25
公孙老身
如果其他人想要达到和变基一样的历史,是不是可以先删除本地分支,重新fetch之后,再创建一个新的分支?如果可以的话,但是这里又会有个新问题,就是其他人可能并不知道有人做了"变基",已经在本地做了大量的项目工作,如果为了历史同步那么这些工作就前功尽弃了。所以是不是只能通过"变基"的用户通过git reflog找回历史,这样别人才能正常提交,损失最小。谁犯错 谁纠正
2021-03-07
收起评论