### 底层命令(了解)
git对象
git hash-object -w fileUrl :生成一个key(hash值):val(压缩后的文件内容)键值对存到.
git update-index --add --cacheinfo 100644 hash test.txt : 往暂存区添加一条记录(让git对象 对 应 上文件名)存到.git/index
git write-tree : 生成树对象存到.git/objects
commit对象
echo 'first commit' | git commit-tree treehash : 生成一个提交对象存到.git/objects(不常用)
对以上对象的查询
git cat-file -p hash : 拿对应对象的内容
git cat-file -t hash : 拿对应对象的类型
### 高层命令(掌握)
git version : 查看git版本;
##初始化配置
git config --global user.name "username" : 配置用户名
git config --global user.email email : 配置用户邮箱
git config --list : 查看配置列表
git init : 初始化仓库
##CRUD
git add ./ : 跟踪工作目录的文件,将它们放进暂存区
git commit -m "注释信息" : 提交暂存区的文件,在本地生成文件快照
git rm 文件名 : 删除工作目录中对应的文件 再将修改添加到暂存区
git mv 原文件名 新文件名 :将工作目录中的文件进行重命名 再将修改添加到暂存区
git status : 查看工作目录中文件的状态(已跟踪(已提交 已暂存 已修改) 未跟 踪)
git diff : 查看未暂存的修改
git diff --cache : 查看未提交的暂存
git log --oneline : 查看提交记录
git ls-files -s : 查看暂存区的内容
##分支(branch)
git branch : 查看分支列表
git branch -d branchName : 删除已合并的分支(未合并不能删除)
git branch -D branchName : 强制删除分支
git branch -v : 查看分支指向的最新的提交
git branch name : 在当前提交对象上创建新的分支
git branch name commithash : 在指定的提交对象上创建新的分支
git log --oneline --decorate --graph --all: 查看整个项目的分支图
git checkout branchName : 切换分支
git checkout -b branchNme : 创建分支并切换到该分支
git merge branchName : 强制合并分支
git branch --merged : 查看合并到当前分支的分支列表
git branch --no-meraged : 查看没有合并到当前分支的分支列表
git stash : 会将当前分支上的工作推到一个栈中(分支切换/进行其他工作/完成其他工作后/切 回原分支)
git stash apply : 将栈顶的工作内容还原 但不让任何内容出栈
git stash drop : 取出栈顶的工作内容后 就应该将其删除(出栈)
git stash pop : git stash apply + git stash drop
git stash list : 查看存储
##远程厂库
git remote add 别名 url : 添加一个新的远程 Git 仓库,同时指定一个你可以轻松引用的 别名
git remote –v : 显示远程仓库使用的 Git 别名与其对应的 URL
git remote show [remote-name] : 查看某一个远程仓库的更多信息
git remote rename 原别名 新别名 : 重命名
git push [别名] [分支名] : 将本地项目的当前分支推送到别名为[别名]的服务器上 (创建远程跟踪分支)
git clone url : 成员将远程仓库克隆到本地(不需要初始化仓库)
git fetch [remote-name] : 本地仓库中项目的本地远程跟踪分支与远程分支同步 ( 本地分支与远程跟踪分支不会自动同步需要合并分支)
git git branch -u [远程跟踪分支] : 当前分支跟踪远程跟踪分支
git push : 相当于git push [别名] [分支名],但是除克隆下来的分 支 外,其他新建分支需要进行上一步操作
git pull : 本地分支与远程分支同步
git push origin --delete serverfix : 删除远程分支
git remote prune origin --dry-run : 列出仍在远程跟踪但是远程已被删除的无用分支
git remote prune origin : 清除上面命令列出来的远程跟踪