git init #创建仓库
git init --bare #创建裸仓库(只有版本库没有工作目录,常用在搭建git服务器上)
git clone #克隆一个远程仓库
git config #配置仓库
git add #添加修改到暂存区
git commit #提交修改到版本库
git log #查看提交历史
git status #查看文件状态
git diff #修改差异比较
git show #查看某个提交信息
文件管理:
git add . #添加工作区所有文件
git commit -a #一次性提交
git commit --amend #修改最后一次提交
git rm filename #从工作目录和暂存区中删除文件
git rm --cached filename #从暂存区中删除,工作目录保留
git reset [--mixed] SHA-1 #回退版本到工作目录
git reset --soft SHA-1 #回退版本到暂存区
git reset --hard SHA-1 #回退版本,修改丢弃
git mv old_file new_file #文件重命名
git checkout filename #撤销工作区的提交
git reset HEAD filename #撤销暂存区的修改,重新放回工作区
git diff --cached [HEAD] #比较暂存区和版本库的差异
git diff HEAD #比较工作区和版本库差异
git diff 一版本的SHA-1 另一版本的SHA-1 #比较两个版本的差异
git gc #压缩仓库
du -sh #查看git仓库占用空间大小
改写历史:
git log --pretty=oneline -n #单行显示n条记录
git log --graph | gitk #图形化显示提交历史
git log -p #显示每次提交具体的修改
git blame #查看指定文件的提交历史
git grep #提交查找
git revert #反转提交
git reflog #查看操作记录
分支管理:
git branch #创建分支、查看分支
git checkout -b new_branch [old_branch] #[在某分支上]创建并切换到新分支
git checkout branch_name #切换分支
git branch -d | -D branch_name #删除分支
git branch -m | -M old_branch new_branch #分支重命名
git merge branch_name #直接合并(分为快进提交、合并提交两类)
git merge --squash branch_name #压合合并,一般用于bug或新功能分支合并
git cherry-pick [-n] SHA-1 #挑选一个或多个提交合并
git rebase branch_name #分支衍合
git stash #分支修改储藏
git stash apply(pop) #恢复当前分支数据,使用pop时,丢弃stash中的记录
git stash list #查看储藏队列
git stash clear #清空储藏队列
git stash apply stash@{2} #恢复某次储藏
git fsck --lost-found #查看悬空commit对象
标签管理:
git tag v1.0 #添加轻量级标签
git tag -a v1.0 -m "version 1.0" SHA-1 #添加重量级标签
git tag #查看标签
git tag -d v1.0 #删除标签
git checkout v1.0 #切换到标签标记的版本库状态
git push origin v1.0 #推送某个标签
git push origin --tags #推送所有标签
git push origin :refs/tags/v1.0 #删除远程标签v1.0
远程仓库:
git clone repo_addr #克隆远程仓库
git remote add origin git@github.com:github的用户名/仓库名.git #添加远程仓库
git fetch origin master #拉取远程更新到本地仓库
git pull origin master #拉取远程更新并合并到本地仓库
git push origin master #推送本地修改到远程仓库
git remote -v #查看远程仓库信息
git remote show origin #查看远程仓库信息
git remote rm repo_name #删除本地的远程仓库信息
git remote rename repo_oldname repo_newname #重命名远程仓库名称
git push origin local_branch:remote_branch #推送本地新建分支到远程仓库
git branch local_branch origin/remote_branch #跟踪远程分支
git push origin :remote_branch #删除远程分支
git remote prune origin #同步本地的远程分支
git push origin mybranch:master #提交到指定的远程分支(注意:要在快进模式下运行该命令)
git branch [-av] #查看本地和远程分支关联情况