git 简介
Git是目前世界上最先进的分布式版本控制系统,在处理各种项目时都十分高效,而且非常的高大上。
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。而且集中式版本控制系统是必须联网才能工作。
Git是分布式版本控制系统,它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。
?git 命令
一个非常棒的交互式demo
基础命令
命令 | 含义 | 常用快捷方法 | git init | 创建本地仓库 | | git clone | 克隆远端仓库 | | git add | 添加文件到暂存区 | git add . 添加所有修改文件到暂存区 | git status | 查看暂存区状态 | | git commit | 进行一次一次提交 | git commit -m "commit log" 附加日志 | git branch | 查看所有分支名称 | git branch -b new_branch_name创建分支 | git checkout | 查看当前分支名称 | git checkout branch_name 切到指定分支 | git rebase | 合并commit | | git merge | 合并分支 | git merge target_branch 将目标分支合并到当前分支 | git push | 推送到远端 | | git fetch | 下载远端内容 | | git pull | git fetch + git merge | | git log | 查看本仓库提交历史 | |
进阶指令
git reset --hard origin/远程分支名 | 用远程分支强制覆盖当前分支 | | git checkout -b new_branch_name | 创建新分支并切换到该分支 | | git config user.xxx | 查看用户配置 | | git config --global user.xxx xxxxx | 配置对应属性 | | git cherry-pick <hashcode> | 将指定提交记录合并到当前分支 | git cherry-pick 教程 - 阮一峰的网络日志 | git push origin 分支名 --force | 用本地当前分支强行覆盖远端分支 | | git log --pretty=oneline | 查看当前分支的提交记录以及hashcode | | git reset --hard HEAD^/1078f | 回退到当前分支的上一个版本,或用hashcode回退到指定版本 | Git命令(3)-----git 版本回滚到指定版本或是上一个提交的版本_爱倒腾的博客-CSDN博客_git返回到上一个版本 | git checkout -f 分支名 | 强制切换分支 | | git branch -d/-D 分支名 | 删除本地分支 | | git push origin -d/-D 分支名 | 删除远程分支 | | git stash && git stash pop | 保存当前分支,恢复刚刚保存的内容。用于不想进行git add,但需要切分支 | git-stash用法小结 - Tocy - 博客园 |
git 原理
https://www.cnblogs.com/mamingqian/p/9711975.html
blob对象记录文件内容
tree对象管理文件与文件夹的结构
commit对象管理提交信息
分支是一个指向某个提交链的最后一次commit对象的指针
|