1、基本功能
协同修改
多人并行不悖的修改服务器端的同一个文件。
数据备份
不仅保存目录和文件的当前状态, 还能够保存每一个提交过的历史状态。
版本管理
在保存每一个版本的文件信息的时候要做到不保存重复数据, 以节约存储空
间, 提高运行效率。 这方面 SVN 采用的是增量式管理的方式, 而 Git 采取了文
件系统快照的方式。
权限控制
对团队中参与开发的人员进行权限控制。
对团队外开发者贡献的代码进行审核——Git 独有。
历史记录
查看修改人、 修改时间、 修改内容、 日志信息。
将本地文件恢复到某一个历史状态。
分支管理
允许开发团队在工作过程中多条生产线同时推进任务, 进一步提高效率
2、git的优势
1、大部分操作在本地完成, 不需要联网
2、完整性保证
3、尽可能添加数据而不是删除或修改数据
4、分支操作非常快捷流畅
5、与 Linux 命令全面兼容
3、git结构
4、本地库和远程库操作
本地库的创建 在e盘创建文件夹 code_project
mkdir code_project 创建文件夹
cd code_project 进入文件夹
git init 进行初始化
vim hello.txt 创建hello.txt文件、编辑保存
git add hello.txt
git commit -m “new file hello.txt” hello.txt 提交hello.txt文件
新建远程库
new repository -----输入库名(为了区分建议与本地库一致)—create repository
创建远程库地址别名
git remote -v 先进行查看,为空
git remote add origin https://github.com/xxx/Code_Project.git 添加别名为origin的远程地址别名 url为(clone and download下copy)
git remote -v 再次查看已经存在 origin地址
push操作
git push origin master 填写账号和密码、完成push
5、克隆操作
退出当前 cd …、新建一个目录 进入目录
git clone https://github.com/xxx/code_project.git 即可完成克隆至本地操作
效果
1、完整的把远程库下载到本地
2、创建 origin 远程地址别名
3、初始化本地库
补:
git命令行操作
git add 文件名 添加
git status 查看状态
git commit -m “commit message” [file name] 提交
查看历史记录:
git log
git log --pretty=oneline
git log --oneline
git reflog
前进后退操作:
推荐:
git reset --hard [索引值]
git reset --hard a6ace91
使用 ^ 只能后退
git reset --hard HEAD^ ^的个数表示后退几步
git reset --hard HEAD~n n表示步数
删除文件并找回
前提: 删除前, 文件存在时的状态提交到了本地库。
操作: git reset --hard [指针位置]
删除操作已经提交到本地库: 指针位置指向历史记录
删除操作尚未提交到本地库: 指针位置使用 HEAD
分支操作:
创建分支
git branch [分支名]
查看分支
git branch -v
切换分支
git checkout [分支名]
合并分支
第一步: 切换到接受修改的分支(被合并, 增加新内容) 上
git checkout [被合并分支名]JavaEE 高级课程系列
第二步: 执行 merge 命令
git merge [有新内容分支名]
6、git基本原理–hash算法
明文—加密算法—密文
哈希是一个系列的加密算法, 各个不同的哈希算法虽然加密强度不同, 但是有以下
几个共同点:
①不管输入数据的数据量有多大, 输入同一个哈希算法, 得到的加密结果长度固定。
②哈希算法确定, 输入数据确定, 输出数据能够保证不变
③哈希算法确定, 输入数据有变化, 输出数据一定有变化, 而且通常变化很大
④哈希算法不可逆
Git 底层采用的是 SHA-1 算法。
哈希算法可以被用来验证文件。