文章目录
1 版本管理工具
- 集中式:SVN、CVS、VSS
- 分布式:Git、Mercurial、Bazaar、Darcs
避免了单点故障
2 Git的优势
- 大部分操作在本地完成,
不需要联网
- 完整性保证
- 尽可能
添加数据
,而不是删除或修改数据 - 分支操作非常快捷流畅
- 与 Linux 命令全面兼容
3 Git安装
- 官网:
https://git-scm.com/
,一路下一步即可,使用默认
值。
4 Git结构
5 Git和代码托管中心
- 局域网环境下:
GitLab
服务器 - 外网环境下:GitHub、码云(gitee)
- 代码托管中心的任务:维护
远程库
(注意与本地库
的区别)
6 本地库与远程库
团队内
协作:
团队外
协作:
7 Git命令行操作
7.1 本地库操作
- 本地库
初始化
:git init
执行完后,会生成一个名为.git
的隐藏目录,存放的事本地库相关的子目录和文件,尽量不要删除和修改。
7.2 设置签名
形式:用户名,Email地址。
作用:区分不同开发人员的身份
注意:这里设置的签名
和登录远程库(代码托管中心)的账号
、密码没有任何关系。
命令:git config [--global] user.name tom
git config [--global] user.email tom@163.com
系统用户级别的信息保存位置:~/.gitconfig
文件
7.3 基本命令
- 查看工作区、暂存区状态:
git status
- 添加操作,将工作区的新建/修改添加到暂存区:
git add [file name]
暂存区可以撤销
操作。 - 提交操作,将暂存区的内容提交到本地库:
git commit -m "commit message" [file name]
- 查看历史记录:
git log
,如果记录很长,则会多屏
显示,空格
向下翻页,b
向上翻页,q
推出。
git log --pretty=oneline
git log --oneline
git reflog
,HEAD@{移动到当前版本需要多少步}
- 前进后退操作:
基于索引值操作(推荐):git reset --hard [局部索引值]
,如git reset --hard 853e6bd,回到索引值所在的版本
使用^
符号:只能后退
git reset --hard HEAD^
,一个^表示后退一步,n个表示后退n步
使用~
符号:只能后退
git reset --hard HEAD~n
,表示后退n步
-
删除文件并找回
一定要把文件存在的状态提交到本地库
(git commit命令)
(1)删除操作已经提交
到本地库
vim aaa.txt
git add aaa.txt
git commit -m "new file aaa.txt" aaa.txt
rm aaa.txt
git add aaa.txt
git commit -m "delete file aaa.txt" aaa.txt
git reset --hard 指针位置
(2)删除操作尚未提交
到本地库
vim aaa.txt
git add aaa.txt
git commit -m "new file aaa.txt" aaa.txt
rm aaa.txt
git add aaa.txt
git reset --hard HEAD
-
比较文件:
git diff 文件名
git diff HEAD 文件名
,git diff HEAD^ 文件名
参考资料