Git的常用命令:https://liaoxuefeng.gitee.io/resource.liaoxuefeng.com/git/git-cheat-sheet.pdf
Git的官方网站:http://git-scm.com
Git的gitignore配置文件:https://github.com/github/gitignore
常用命令
配置
git config --global user.name 'Your Name'
git config --global user.email 'Your Email'
git config --global color.ui true
创建版本库
git init 初始化git仓库
git add 添加文件到暂存区
git commit 添加文件到本地版本库
版本回溯
--hard 强制删除工作区修改
git restore <file_name> / git checkout -- <file_name> 恢复工作区文件(还原工作区修改)
git resotore --staged <file_name> / git reset HEAD <file_name> 恢复暂存区文件(回退以提交到暂存区文件)
git reset --hard <commit_id> 恢复已提交文件(回滚到某个指定commit版本)
git rm <file_name> 删除版本库文件
查看日志
git log 查看日志
git log --pretty=oneline 输出日志在一行展示
git log -1 只看最后一行日志
git reflog 查看命令历史
git log --graph 查看分支合并图日志
对比差异
git diff 比较工作区与暂存区的修改
git diff HEAD -- <file_name> 比较文件在工作区与上一次commit的区别
git diff --cached 比较暂存区与上一次commit的区别
远程仓库
git remote 查看远程库的名称
git remote -v 查看远程库详细信息
git remote add <远程库名> <远程库地址> 添加远程库
git remote set-url <远程库名> <远程库地址> 修改远程库地址
git push -u <远程库名> <分支名> 推送代码到远程库的分支
git push -u origin master 将本地的master分支推送到远程库origin的master分支上(-u 设置远程库的默认主机是 origin)
git remote -rm <远程库名> 删除远程库
git clone <远程库地址> 从远程库复制版本库
git checkout -b <本地分支名> <远程库名/远程分支名> 在本地和远程库创建分支(如:git checkout -b dev origin/dev 在本地和远程库创建dev分支)
git branch --set-upstream-to=<远程库>/<分支名> <本地分支名> 将本地分支和远程分支创建链接关系(如:git branch --set-upstream-to=origin/dev dev2.0 将本地的dev2.0分支与远程的dev分支创建链接)
git pull 从远程库拉取
分支
git switch -c <branch_name> / git checkout -b <branch_name> 创建并切换分支
git switch <branch_name> / git checkout <branch> 切换分支
git branch <branch_name> 创建分支
git branch 查看分支
git branch -d <branch_name> 删除分支
git branch -D <branch_name> 强行删除没有合并的分支
git merge <branch_name> 合并分支
git merge --no-ff -m '提交描述' <branch_name> 以普通模式合并分支(非快进模式)
git cherry-pick <commit_id> 同步提交到分支
git rebase 将分叉的提交历史整理成一条直线(但会修改本地的分叉提交)
储藏工作现场
git stash 储藏工作现场
git stash list 查看工作现场
git stash apply 恢复最近一次的工作现场
git stash apply stash@{xx} 恢复指定工作现场
git stash pop 恢复并删除最近一次的工作现场
git stash clear 清空工作现场
git cherry-pick <commit_id> 同步提交到其他分支
标签管理
git tag <tag_name> 创建标签(对HEAD指针指向的提交添加标签)
git tag <tag_name> <commit_id> 对末次提交添加标签
git tag -a <tag_name> -m <标签描述> <commit_id> 创建标签并添加描述
git tag 查看标签
git show tag <tag_name> 查看标签的详细信息(如:git show tag v1.0 即:查看v1.0标签的详细信息)
git tag -d <tag_name> 删除标签
git push <远程库名> <tag_name> 推送标签到远程(如:git push origin v1.0 即:向远程库origin 推送 v1.0 标签)
git push <远程库名> --tags 向远程库推送所有本地标签
git push <远程库名> :refs/tags/<tag_name> 删除远程库上的标签(前提是本地标签已被删除)