目录
了解 Git 基本概念能够概述 git 工作流程能够使用 Git 常用命令熟悉 Git 代码托管服务能够使用 idea 操作 git
场景一:备份小明负责的模块就要完成了,就在即将 Release 之前的一瞬间,电脑突然蓝屏,硬盘光荣牺牲!几个月来的努力付之东流场景二:代码还原这个项目中需要一个很复杂的功能,老王摸索了一个星期终于有眉目了,可是这被改得面目全非的 代码已经回不到从前了。什么地方能买到哆啦A 梦的时光机啊?场景三:协同开发小刚和小强先后从文件服务器上下载了同一个文件: Analysis.java 。小刚在 Analysis.java文件中的第 30 行声明了一个方法,叫 count() ,先保存到了文件服务器上;小强 Analysis.java 文件中的 第50 行声明了一个方法,叫 sum() ,也随后保存到了文件服务器上,于是, count() 方法就只存在于小刚的记忆中了场景四:追溯问题代码的编写人和编写时间!老王是另一位项目经理,每次因为项目进度挨骂之后,他都不知道该扣哪个程序员的工资!就拿这次来说吧,有个Bug 调试了 30 多个小时才知道是因为相关属性没有在应用初始化时赋值!可是二胖、王东、刘流和正经牛都不承认是自己干的!
a 、集中式版本控制工具集中式版本控制工具,版本库是集中存放在中央服务器的, team 里每个人 work 时从中央服务器下载代 码,是必须联网才能工作,局域网或互联网。个人修改后然后提交到中央版本库。举例: SVN 和 CVSb 、分布式版本控制工具分布式版本控制系统没有 “ 中央服务器 ” ,每个人的电脑上都是一个完整的版本库,这样工作的时候,无 需要联网了,因为版本库就在你自己的电脑上。多人协作只需要各自的修改推送给对方,就能互相看到对方的 修改了。举例: Git
# no .a files*.a# but do track lib.a, even though you're ignoring .a files above!lib.a# only ignore the TODO file in the current directory, not subdir/TODO/TODO# ignore all files in the build/ directorybuild/# ignore doc/notes.txt, but not doc/server/arch.txtdoc/*.txt# ignore all .pdf files in the doc/ directorydoc/**/*.pdf
- #####################仓库初始化######################
- # 创建目录(git_test01)并在目录下打开gitbash
- 略
- # 初始化git仓库
- git init
- #####################创建文件并提交#####################
- # 目录下创建文件 file01.txt
- 略
- # 将修改加入暂存区
- git add .
- # 将修改提交到本地仓库,提交记录内容为:commit 001
- git commit -m 'commit 001'
- # 查看日志
- git log
- ####################修改文件并提交######################
- # 修改file01的内容为:count=1
- 略
- # 将修改加入暂存区
- git add .
- # # 将修改提交到本地仓库,提交记录内容为:update file01
- git commit --m 'update file01'
- # 查看日志
- git log
- # 以精简的方式显示提交记录
- git-log
- ####################将最后一次修改还原##################
- # 查看提交记录
- git-log
- # 找到倒数第2次提交的commitID
- 略
- # 版本回退 git reset commitID --hard