A Dog: https://stackoverflow.com/questions/1057564/pretty-git-branch-graphs
B站上,一个不错的GIT教程
在没有版本管理软件的时候我们要做文件的管理会非常棘手,多人协作更是个大问题。Git是一个分布式版本管理系统,是为了更好地管理Linux内核开发而创立的。自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统。在这个视频中将给你介绍到底什么是 Git?它里面都有什么?
课程 PPT:https://slides.com/biezhi/git-tutorial/live 视频:
Git 命令是一些命令行工具的集合,它可以用来跟踪,记录文件的变动。比如你可以进行保存,比对,分析,合并等等,这个过程被称之为版本控制。在这个视频中介绍 Git 中最常用的几个命令,手把手带你了解它们都是什么意思?如何使用它们?
课程 PPT:https://slides.com/biezhi/git-tutorial/live
视频:
在实现一些新功能或者修复 BUG 的时候,我们希望所有的修改环境都是独立的,Git 给我们提供了分支,它可以保证稳定版本的代码不会被破坏、不同的功能可以由不同开发者同时开发、开发者可以专注于自己的分支,不用担心被其他人破坏了环境。在这个视频中将给你介绍什么是分支?分支的基本操作和合并、本地分支和远端分支的操作。
在做一些新特性或者修复 bug 的时候,我们通常会建立一个新的分支,而完成后我们需要做一个合并分支的操作。git merge 的工作机制是怎样的?rebase 又是什么?如何让 git 日志变得美观一些?我们如何解决冲突呢?在这个视频中介绍这些内容。
时光不能倒流,但是 Git 可以做时光机让你的提交记录回到过去。在 Git 里撤销变更的方法很多,今天我们介绍 reset 和 revert 这 2 个命令。git revert 撤销某次操作,此次操作之前和之后的 commit 和 history 都会保留,并且把这次撤销作为一次最新的提交。git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。相比 git reset,它不会改变现在的提交历史。
这个视频中给你介绍 2 个技巧。第一,在 Git 中如何忽略那些不需要上传的文件,原则是什么?规则是什么?好的方法是什么?第二,我们 fork 了别人的仓库,但是对方更新代码了,我如何和他保持同步呢?再次重温 merge 和 rebase 的妙用。
在线生成忽略文件:https://www.gitignore.io/
大家平时看我操作 Git 在 push 的时候都是不输入密码的,是因为在 Github 做了 SSH 公钥授权。很多人都会遇到各种授权失败,每次提交要输密码的问题,这个视频中花几分钟让你搞定它们。
SSH 免密登录原理:https://blog.biezhi.me/2017/08/ssh-no-password-login.html
在使用 Git 和别人协作的时候有多种方式,早期我们使用 SVN 一言不合就 update,git 中有多种工作流方式适应不同的团队,这里给你介绍集中式工作流、功能分支工作流和 fork 工作流,你目前在使用哪种呢?
视频中的资料:https://git.io/fpYgR
前面学了好些 git 命令,千呼万唤始出来,终于可以把玩图形界面。今天介绍三款流行的 git 操作工具 sourcetree、vscode、JetBrains 家的 IDE。同时分享一些高质量的 git 资料,方便大家日后学习和查看。
视频中的 git emoji 插件地址:https://plugins.jetbrains.com/plugin/10315-gitmoji