课程综述
为什么Git
- GitHub是全球最大的开源社区,里面存放了很多优秀的开源项目的代码
- GitLab的社区版本现在也被国内很多知名的互联网企业当作是代码管理的平台
- GitHub和GitLab这两个平台在整个DevOps盛行的大环境中,他们不仅仅提供了代码管理的功能,他们还向外扩展提供了整个DevOps全生命周期的全流程的解决方案
怎么学习
- 掌握Git
- 熟悉GitHub和GitLab这两个平台的主要功能
- 通过简单的项目走一遍团队协作、代码review和分支集成、以及整个持续交付的过程
收获什么
- 掌握Git的基本命令
- 掌握Git的工作原理
- 能基于GitHub和GitLab这两个平台做团队协作、代码review和分支集成的活动
- 了解如何在GitHub和GitLab上如何开展持续交付活动
总结
常用命令
No. | 常用场景 | 命令 |
---|---|---|
1 | 怎么删除不需要的分支 | git brach -d branch_name |
2 | 怎么修改最新commit和message | git commit --amend |
3 | 怎么修改老旧commit和message | git rebase -i commit_father_id |
4 | 怎么把连续的多个commit整理成1个 | git rebase -i commit_father_id |
5 | 怎么把间隔的几个commit整理成1个 | git rebase -i commit_father_id |
6 | 怎么比较暂存区和HEAD所含文件的差异 | git diff --cached |
7 | 怎么比较工作区和暂存区所含文件的差异 | git diff |
8 | 如何让暂存区恢复和HEAD的一样 | git reset HEAD |
9 | 如何让工作区的文件恢复为和暂存区一样 | git checkout |
10 | 怎么消除暂存区部分文件的修改 | git reset HEAD -- file1 file2 |
11 | 消除最近的几次提交 | git reset --hard commit_id |
12 | 看看不同提交的指定文件的差异 | git diff commit-id1 commit-id2 path-to-filename |
13 | 正确删除文件的方法 | git rm file |
14 | 开发中临时加塞了紧急任务怎么处理 | git stash |
15 | 如何指定不需要Git管理的文件 | touch .gitignore |
16 | 如何将Git仓库备份到本地 | git clone --bare file://[local_path] [backup_name] |
git.config
[core] |
活跃统计
git log --date=iso | perl -nalE 'if (/^Date:\s+[\d-]{10}\s(\d{2})/) { say $1+0 }' | sort | uniq -c|perl -MList::Util=max -nalE '$h{$F[1]} = $F[0]; }{ $m = max values %h; foreach (0..23) { $h{$_} = 0 if not exists $h{$_} } foreach (sort {$a <=> $b } keys %h) { say sprintf "%02d - %4d %s", $_, $h{$_}, "*"x ($h{$_} / $m * 50); }' |