源码: https://github.com/git/git/
Git特点
最优的存储能力
非凡的性能
开源的
很容易做备份
支持离线操作
很容易定制工作流程
Git安装
https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git
$ git --version
配置user信息
$ git config --global user.name 'your name'
$ git config --global user.email 'your email'
config作用域(缺省等同于local)
$ git config --local 只对某个仓库有效
$ git config --global 对当前用户所有仓库有效
$ git config --system 对系统所有登陆的用户有效
显示config的配置,加--list
$ git config --list --local
$ git config --list --global
$ git config --list --system
如果同时设置了global local用户信息,git将会采用local级别的设置
建Git仓库
1、把已有的项目代码纳入Git管理
$ cd 项目代码所在的文件夹
$ git init
2、新建的项目直接用Git管理
$ cd 某个文件夹
$ git init your_project #会在当前路径下创建和项目名称同名的文件夹
$ cd your_project
3、克隆远端的仓库
$ git clone [url]
工作区和暂存区
工作目录的代码通过 git add 会到暂存区,暂存区的代码通过 git commit 会到版本历史
文件四种状态
-
Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过
git add
状态变为Staged
. -
Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为
Modified
. 如果使用git rm
移出版本库, 则成为Untracked
文件 -
Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过
git add
可进入暂存staged
状态, 使用git checkout
则丢弃修改过, 返回到unmodify
状态, 这个git checkout
即从库中取出文件, 覆盖当前修改 -
Staged: 暂存状态. 执行
git commit
则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify
状态. 执行git reset HEAD filename
取消暂存, 文件状态为Modified
基础命令
git add -u 所有修改文件一起提交到暂存区
git add 添加文件到暂存区
git add . 当前目录所有文件添加到暂存区
git commit -am 'commit' 工作区的修改直接提交到历史版本控制
git rm 删除一个文件
git status 查看文件状态
git reset --hard 清空工作区和暂存区的变更
git mv filenamea filenameb ->git commit 文件重命名
git log --oneline 查看提交日志
git log -n4 --oneline 最近四次的演进历史
git log --oneline --all -n4 所有分支最近四个commit
git log --oneline --all -n4 --graph
git help --web log 浏览器方式查看log的帮助文档
gitk --all 图形化界面查看版本历史
git checkout -b brancha branchb 基于b分支创建a分支,并切换到a分支
git branch -av 查看所有分支
git diff commita commitb 比较两次commit的差异
git diff HEAD HEAD^1 比较head和head父亲commit的变更差异 HEAD^^等同于HEAD~2指代head的父亲的父亲
git branch -d branchname 删除不需要的分支,还有commit没有merge的时候会报错, -D 强制删
git commit --amend 修改最近一次提交的message做变更
git rebase -i 需要变更的commit的上一个commit号 修改旧的commit的message
reference:https://www.cnblogs.com/best/p/7474442.html