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

全部留言(28)

  • 最新
  • 精选
Santi
fast forward到底是什么阿? 糊涂了,求老师讲解一下,谢谢

作者回复: 举个例子,本地分支往远端分支做push,如果远端分支不是本地分支的祖先,那它俩就不是 fast forward 了。反之,它俩就是fast forward的关系。

2019-01-15
5
10
yhq
git fetch 拉取远程版本库到本地, 请问, 是将远程的代码拉取到工作区吗, 如果我之前工作区有新内容的话,然后 git fetch拉去远程代码到本地, 会不会发生覆盖行为呢

作者回复: fetch不会拉到工作区的,只是把本地的远端分支和服务端对应的远端分支保持一致。 建议你执行fetch测试一下。

2019-07-16
6
Kate
远端分支不是本地分支的祖先有什么影响?还是不理解fastforward!

作者回复: 影响:本地分支直接push到对应的远端分支,报非fastforward的❌。 我们把fastforward通俗地说:commit和commit之间,子commit有一个箭头指向父commit,用这种方式,版本演变的历史就会形成一幅带方向的图。把commit比做人的话,孙子和爷爷之间,儿子和爸爸之间就是fastforward的关系,而堂兄之间就不是fastforward的关系了。 官网解释:fastforward是merge的一种特殊类型,你把A分支合入到B分支的时候,恰好B分支指向的commit是A分支的祖先,在这种情况下,我们无需额外创建一个merge的commit,而只需把B分支指向A分支对应的commit就行。

2020-07-30
5
IvanYu
老师,我们的工作场景比较特殊,有一个甲方和乙方共研项目。2个gitlab,其中甲方有内外网物理隔离,也就是说2个gitlab没法联网。 目前采用git clone --bare {url}加U盘拷贝杀毒进入内网,再使用git push --mirror {url}方式全量同步到甲方gitlab。计划2周同步一次。 这种方式存在共研后期分支代码合并问题,如何处理? 请问是否有更好的解决方案。

作者回复: 我们的做法是:为对外合作项目单独搭建了一个gitlab,公司内部员工用内网域名,合作方用外网域名,并且为外网IP设置了白名单,只有授权的IP才能访问公司的gitlab

2019-12-13
4
plasmatium
关于其他同学遇到的ssh权限问题,我看到网上有个测试方法:`ssh -T git@github.com`,成功与否都会有相应提示。我一开始总报错denied,然后发现可以用`ssh -vT git@github.com`看具体发生了什么,发现ssh并没有使用我刚才生成的key,查了一圈,发现需要改`~/.ssh/config`这个文件。 假设我们通过命令生成的是`my_key`和`my_key.pub`,那么可以添加如下信息到`~/.ssh/config`下: ``` # gitee Host gitee.com HostName gitee.com PreferredAuthentications publickey IdentityFile ~/.ssh/my_key # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/my_key ``` 此处我除了github,还另外添加了gitee,如果有其他服务器比如公司的仓库,也应该能一起添加进去的。然后确保github或者gitee上自己profile里ssh部分,添加了`my_key.pub`里面的公钥内容,那么此时用命令:`ssh -T git@github.com`,就报成功了。然后就可以愉快地用使用`git@github.com:xxx`的地址进行ssh通信了

作者回复: 👍

2019-03-31
4
Fairy
老师 在不用merge用rebase的情况下怎么操作能说一下嘛?谢谢~

作者回复: 1)先把远端的分支 fetch到本地,然后,再执行 rebase 。 2)直接 git pull --rebase 。

2019-01-09
2
3
BUGCREATOR
老师,我在做练习的时候使用git clone "github的url"的形式从github上拉代码,没有用git remote add github https://gith...XXX.git的形式也可以将代码push到github上去 。 比较郁闷,用https协议提交的时候不用remote而是用ssh是时候要用remote吗?

作者回复: remote add的方式是在当前路径下已经是git仓库的时候用的,为了让该git仓库可以push/pull不同的远端

2019-02-16
2
pyhhou
老师,想问个问题,对于private的仓库,即使加了access key,使用ssh的方式进行push会有以下的报错: repository access denied. access via a deployment key is read-only. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 但是如果不使用ssh的方式,转而用https的方式进行push的话,就没有这样的问题,是不是这里面有什么限制之类的?还请老师指点,谢谢老师,祝老师新年快乐

作者回复: hi,估计您把公钥贴到仓库的deploy keys里面了,我们应该放到个人profile里SSH的设置中。

2019-01-03
2
2
EmilyLucky
苏老师,在31小节,配置公私钥检查是否已存在公私钥步骤,按照你视频中执行cd ~/.ssh,是没有这个文件的,当时为了跟你视频保持一致,自己手动创建了一个,这里有个遗留问题:系统(window)中没有.ssh这个文件如何处理?(我这里是自己手动创建的) 手动创建后,按照视频步骤生成了公私钥,并且将公钥粘贴到github上,但,在这一节视频当执行git push github --all 这一步,报错如下: ssh_dispatch_run_fatal: Connection to 192.30.255.111 port 22: Software caused connection abort fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 不知老师是否可以解答一下?

作者回复: windows系统,我安装了msysgit,鼠标右键会有个 git bash(模拟linux的交互窗口)。在这个里面建公私钥吧 。

2020-06-01
1
iusugar
老师,我在本地连接了两次远程仓库(远程的是同一个),为远程仓库取了两个名字,一个是github,一个是origin,然后发现提交的分支也分为两个了,这么要怎么办呢?

作者回复: 删掉一个多余的即可。大家可以用 git remote -h 看看该命令的使用说明,用 git remote remove github 就能把github删掉了。

2019-05-23
1
收起评论