Git
关于 git 是啥这种我就不多说了,网上挺多的 —— 分布式版本控制系统,也就是能有效地管理项目版本,本文就是在自己学习一段时间之后发现 git 用的还是不是很熟练,故总结一下:
主要分为两个部分说一下关于 git
1. 基础指南
2. 深入了解
基础指南
安装
可以参看之前我写过的文章 Git——从安装到连接GitHub
创建仓库
创建新文件,打开,执行 git init
用以创建新的仓库
克隆仓库
执行 git clone 仓库地址
可以克隆远程的仓库
提交代码
执行 git add 文件名
将代码交到工作区
执行 git commit -m " "
将代码保存到暂存区
执行 git push origin master
将代码提交到远程仓库
分支
分支就是用来将特性开发绝缘开来的,默认是 master 分支,在其他分支上进行开发,完成之后合并到主分支上
执行 git checkout -b masterA
创建 masterA 分支并切换过去
执行 git checkout master
切回主分支
执行 git branch -d masterA
将新建的分支删除
执行 git push origin masterA
将分支推送到远程仓库
更新、合并
执行 git pull
将远程仓库更新到本地
执行 git merge masterA
将要合并的分支合并到当前分支
有几种情况:
将本地文件提交到远程仓库
git init //初始化仓库
git remote add origin 仓库地址 //连接远程仓库
git push origin master //将远程仓库上的文件拉下来
git add .
git commit -m ""
git push origin master //执行这三部将代码推送到远程仓库
将远程仓库克隆下来,然后提交
这种情况就相当于少了前面两步
在克隆前面仓库的时候就已经和远程仓库建立了联系
git add .
git commit -m ""
git push origin master //执行这三部将代码推送到远程仓库
对远程仓库中的文件进行修改
由于 GitHub 没有删除仓库文件这一功能,只有删除仓库,那就不是很方便了
// 重复上述代码,先将远程仓库拉下来
// 本地此时就有一个和远程一样的仓库了
git add .
git commit -m ""
git push origin master //将代码提交一遍,远程仓库就改好了
解决每次提交都需要账号密码
在整理 GitHub 的时候,每次提交的时候都需要输入账号密码,还是有点繁琐的
在 `C:Users用户` 下有一个 .git.config 文件打开添加
[credential]
helper = store
保存之后 pull 或者 push 之后就可以保存了
深入了解
首先就是关于 .git 文件
hooks(钩子): 存放一些 shell 脚本
Info > exclude:控制 Info 中显示的信息
logs: 保存每次操作的信息,包括更新记录中的 HEAD master 等工作区文件
object: 存放 git 对象,每次提交的时候的信息
refs > heads 当前提交的信息
remote 更新的时候的信息
tags 标签,比如说版本号
COMMIT_EDITMSG:commit 的时候的信息
config:git 的仓库配置文件,包括仓库的地址和文件路径
description:仓库的描述
FETCH_HEAD:版本链接,合并的时候的仓库的版本
HEAD:映射到 ref 引用,能够后找到下一次 commit 的前一次 hash
index:暂存区
一些常见命令:
首先这是一张基准图,信息在图中:
diff
查看两次提交之间的变动
(也就是中间 git diff XXX 中间那段)
Commit
commit 之后,master指向新的节点作为父节点
(提交之后HEAD位置从ed489到了f0cec)
checkout
从历史提交中拷贝文件到工作目录,或者切换分支
(将历史提交da985拷贝到暂存区和工作目录)
reset
将当前分支指向另一个位置,有选择的变动工作目录和索引
(将当前master分支指向前三个b325c)
merge
将不同的分支合并起来
(默认把当前提交ed489和另一个提交33104以及他们的共同祖父节点b325c进行一次三方合并。结果是先保存当前目录和索引,然后和父节点33104一起做一次新提交。)