git是一个软件管理器,分布式,有一个本地仓库,中心服务器,代码提交到本地仓库再推送到中心服务器上,保障工作可以一直是正常执行,即使中心服务器挂l
git init 之后会产生一个.git自己的本地仓库,一是与中心服务器产生连接,更新最新代码到自己的git仓库,二是将一个已经存在的项目克隆到自己的木灵成为自己的git仓库 config就是配置文件 有中心服务器和分支信息,logs目录是相关操作产生的日志,日志是我们操作的唯一凭证 HEDA文件指向当前的分支 object存储的是所有的数据,也就是快照,refs目录里存贮的是数据提交对象的指针
远程仓库 中心服务器 本地仓库 暂存区 工作目录 git init 暂存区,和本地仓库 存数据
git所存储的是一系列的文件快照,,发现哪个文件快照有变化,就会提示你需要添加到暂存区,或是提交到仓库,来保证工作目录是干净的 被跟踪的,未被跟踪的 git status
存储的是key-value键值对,根据key来查找value 根据指针寻址 commit tree bolb
blob对应的就是文件快照种发生变化的文件内容 tree记录了文件快照中各个目录和文件的结构关系 指向了被跟踪的快照 commit 记录了每次提交到本地仓库的文件快照 tree commit 每次提交都有一个commit对象来记录 有一个指针指向上一次提交的commit对象 形成一个链表 可以找到对应版本并恢复 HEAD对象指向的是最后一个commit对象 即使最后一个版本
git add将项目从工作目录添加到缓存区 git rm删除 git commit - m"一些说明信息" 将项目从缓存区提交到本地仓库 git rm --cached 删除 git commit -a将项目从工作目录提交到本地仓库 git push将项目从本地仓库提交到远程仓库 git pull / git fetch 从远程仓库转移到本地仓库 git checkout 从缓存区下载到工作目录 git checkout HEAD 从本地仓库下载到工作目录 git diff 比较版本,缓存区与工作目录之间的比较 git diff --cached 比较版本 本地仓库与缓存区之间的比较 git diff HEAD比较本地仓库与工作目录的不同
git status 可以指引该做什么 工作目录是否干净 git log 列出操作产生的日志 还有提交后的commit的对象的id git show +对象名
创建分支 git branch developer(分支名) git branch git checkout master切换到主分支 git marge developer 合并分支
git branch -D dedveloper 将分支删除 git branch查看分支
主分支 分布重大版本 日常开发 Developer 临时性分支 功能 feature 预发布 release 修补 bug 可以修建一个自己的分支 git branch -a -是详细的意思 全部展示出来
git branch -a查看已有分支 git checkout -b <:>切换到已有分支 git branch <:> 创建分支 git checkout <:> 切换分支 git chekout -b <:> 创建并切换分支 { git checkout master 先切换到master分支 git merge fenzhi 合并分支 } 需要先切换然后才能合并 git branch -d <:> 删除本地分支 git push origin --delete <> 删除远程分支 git branch <分支名称> <提交号> git log可以查出提交号 git log --grapch 查看分支图 git log --graph --pretty=哦呢line-- abbrev-commit 查看简明的分支图 git branch -m <当前分支名> <新的分支名> 修改名字