前言:
Git你了解多少?一探究竟!
1.Git体系
Git与SVN区别
存储方式:
GIT把内容按元数据方式存储类似k/v
数据库,而SVN是按文件
(新版svn已改成元数据存储)。
使用方式:
从本地把文件推送远程服务,SVN只需要commin
t 而GIT需要 add、commint、push
三个步骤SVN基本使用过程。
1.SVN基本使用过程
svn.png2.Git基本使用过程
git_use.jpg管理方式:
git 是一个分布式的版本管理系统,而要SVN是一个远程集中式的管理系统。
集中式:
svn_manage.png分布式:
git_manage.png2.核心命令
01本地初始化项目并关联远程仓库
mkdir git_repeat 新建目录
cd git_repeat 进入目录
git init 初始化仓库
touch README.md 新建文件
vim README.md 编辑文件
git add README.md 添加到缓冲区
git commit -m "first commit" 提交到本地仓库
git remote add origin https://gitee.com/tjhuey/git_repeat.git 关联远程仓库
git push -u origin master 关联简化以后push 和 pull
git remote 对应远程信息
02.fork远程代码
git clone https://gitee.com/tjhuey/git_repeat.git gir_repeat2 克隆代码到本地
03.版本回退与超前
回退 git reset --hard 版本号
超前 (回退后 当前版本之前的版本看不到了)
记住版本号 或者 git reflog 查看历史操作
04.撤销文件修改
未提交到本地仓库时 git checkout -- filename
提交到本地仓库时 git reset HEAD(git rm --cached 文件名 )[根据提示] 退回到add后状态,(再git checkout -- filename 恢复原版本)
05 分支相关
git checkout-b本地分支名x origin/远程分支名x 依赖远程分支创建本地分支 并切换到本地分支上去
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
删除远程分支
1.7版本前
- git branch -r -d origin/branch-name
- git push origin :branch-name
1.7版本后
$ git push origin --delete <branchName>
06 日志log相关
#查看当前分支下所有提交日志
git log
#查看当前分支下所有提交日志
git log {branch}
# 单行显示日志
git log --oneline
# 比较两个版本的区别
git log master..experiment
Git原理:
1.Git是内容寻址文件系统,底层是C开发的,原理 简单的说 是 类似java中的 hashMap 即key-value 数据存储。每次提交都会产生一个 能定位某文件或目录的SHA-1值,是一个指针,在git中 文件可能是Blob类型或者Tree类型。我们提交的文件是Blob,目录是Tree。这就是检索时快速的原因。
2.Git中分支创建也是依赖某次提交的SHA-1值,有了这个指针,内部的HEAD指针只要指向哪个SHA-1值 就是定位哪个分支,哪个文件的当时状态,故Git可以理解是指针指向的概念。
3.每个文件的内容去哪了,SHA-1哈希算法正是根据内容计算的hash值。故你有了hash值,就能得到对应的内容。故你回退或前升到哪个时刻的内容都是ok的。
4.在任何第三方UI软件中集成的Git都是基于Git命令,建议小伙伴们还是直接用命令。
5.哪些不明白可以互相交流哦!
git_top.png
coding
时,做到了如何落实
;
writing
时,做到了如何表达
;
sharing
时,做到了如何传授
;
thinking
时,做到了如何提升
;
[详细请参考官网:)
[Git官网请参考:https://git-scm.com/book/zh/v2/]
进度
互联网工程之Git_1
,yes
其他
,no
网友评论