玩转 Git 三剑客
苏玲
携程代码平台负责人
60828 人已学习
新⼈⾸单¥68
课程目录
已完结/共 62 讲
第三章:Git与GitHub的简单同步 (4讲)
第五章:Git集成使用禁忌 (2讲)
玩转 Git 三剑客
登录|注册
留言
19
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 17 | 怎样把连续的多个commit整理成1个?
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上?
本节摘要
登录 后留言

全部留言(19)

  • 最新
  • 精选
git rebase -i 开始commit [结束commit], 在执行这个命令时, 如果没有指定 结束commit,那么结束commit 默认为当前分支最新的 commit,那么rebase 结束后会自动更新当前分支指向的 commit, 如果指定了结束 commit,而且结束 commit不是当前分支最新的 commit,那么rebase 后会有生成一个 游离的 head,,而且当前分支指向的commit 不会更新

作者回复: 👍

2018-12-15
3
19
William
老师,这个合并commit背景是什么,是这几个commit提交到远程自己的分支后的场景吗 作者回复: 和是否提交到远端自己的分支没有必然联系,只要还没有提交到集成分支就行。 举个例子,为了开发某个功能,本地先后创建了3个commit,等全部开发完毕,发现变更的内容并不复杂,分开反而不利于全面理解该功能。就产生了合并这几个commit的情况。 老师那也就是说,无论是本地还是远程,实际上push了我们自己的远程分支之后我们也是可以修改的?未对他人产生影响.

作者回复: 嗯嗯,只要不影响到其他同事的分支,都可以自行整理。公共的分支坚决不行,不然会给他人带去及其不必要的痛苦,打人的心都会有。

2020-02-29
6
老师讲的非常好! 项目用到gerrit ,能讲讲gerrit吗?比如用git 来对gerrit上change rebase 合并处理。谢谢!

作者回复: 其实原理搞懂了,哪种代码平台一点就通了。我到时候看看,把github,gitlab和gerrit三个平台merge的方式做个比较好了

2018-12-14
4
Spring
合并commit时,常规语法是:git rebase -i 父节点commitID,如果前面没有父节点怎么写呢?

作者回复: 好问题。命令行没法写出来(因为自己本身已经是最根的那个commit了),当交互命令回车后,会出现设置界面,我们不妨自己手工把最根部的那个commit添加进来,并配置好对应的策略。

2019-02-09
2
3
Washington
老师您好,如果想撤销这次合并,应该怎么做呢?

作者回复: 你指不想要本地刚merge出来的commit,对吗?如果工作区、暂存区和HEAD一起回答merge前,执行 git reset --hard HEAD^ 就行啦

2018-12-15
3
3
君莫惜
合并前四个commit message 1. git rebase -i 第五个commitID 2. 将前四个commit message前的pick改为 s,保存 3. 在新的页面最前面输入我们新的commit message

作者回复: 👍

2019-06-30
2
2
李噶星
老师演示了将4个commit合并成了一个,那如果有一个分支是从其中的一个commit分出去的,合并完成后,之前的分支会怎么样呢?

作者回复: 好问题,可以实践一下。我估摸着从那个有分叉的commit及之前的commit都会保留的,即使其他分支做了合并。

2018-12-15
2
杨陆伟
合并后会导致一些commit就没有用了,git会不会清理?

作者回复: git会清理的

2019-08-14
1
孙杏
遇到一个不懂的问题,希望老师解答一下。 首先是git rebase -i commitid 执行之后,把窗口关了,再次进来使用git是下面这个情况 su@sun-PC MINGW64 /e/learninggit/git_learning (master|REBASE-i 1/2) 然后使用git rebase --abort命令,报错如下 su@sun-PC MINGW64 /e/learninggit/git_learning (|REBASE-m) $ git rebase --abort error: could not read '.git/rebase-merge/head-name': No such file or directory 这种情况下还需要怎么改呢,还能恢复吗

作者回复: https://stackoverflow.com/questions/3685001/git-how-to-fix-corrupted-interactive-rebase 如果安装里面不同人的方法都搞不定的话,git reset --hard 先回到rebase前,然后再试试看吧。

2019-03-21
1
轻风悠扬
rebase之前的head commit还在吗,还是已经被git删除了?

作者回复: 没做git gc的话,被rebase的那些commit在.git里面还在的。不用担心。你可以用 git reflog 命令看一下。或者用 gitk —all 看一下

2020-06-14
收起评论