创建版本库
git clone url
克隆远程版本库git init
初始化本地版本库
配置
git config --global user.name 'chengcp'
配置 global 级别的用户名git config --global user.email 'webape@qq.com'
配置 global 级别的邮箱git config --global -l
查看 global 级别的配置列表git config --global --unset user.name
删除用户名git config --global alias.last 'log -1 HEAD'
配置 last 别名,使用 git last 将显示最近的一次提交记录
添加和删除文件
git add file1 file2
添加指定文件到暂存区git add dir
添加指定目录到暂存区git add .
添加当前目录的所有文件到暂存区git mv oldname newname
对一个已经追踪过的文件进行改名,同时加入暂存区git rm file1 file2
删除工作区文件,同时将这次删除放入暂存区git rm --cached file
停止追踪指定文件,但该文件会保留在工作区;tracked 变成 untracked
提交
git commit file1 file 2 -m message
提交暂存区指定文件到本地仓库git commit -m message
提交暂存区所有文件到本地仓库git commit -a -m message
自动暂存所有已经追踪过的文件,且提交到本地仓库git commit --amend -m message
使用一次新的提交,替代上次提交
分支
git branch
查看所有本地分支git branch –r
查看所有远程分支git branch –a
查看所有远程和本地分支git branch –v
查看本地所有分支最新一次提交信息git branch [branch]
新建分支git checkout –b [branch]
新建一个分支,并且切换过去git branch [branch] [commit]
基于某次提交,建立一个分支git branch --track [branch] [remote-branch]
建立一个分支,并且与远程分支建立追踪关系git branch --set-upstream [branch] [remote-branch]
在现有的本地分支和远程分支之间建立追踪关系git branch –m [old-branch] [new-branch]
重命名分支git merge [branch]
把指定分支合并到当前分支git chery-pick [commit] [commit]
选择提交,合并进当前分支git branch –d [branch]
删除本地分支git push origin –d [branch]
删除远程分支git checkout [branch]
切换分支git checkout -
切换到上一个最近使用过的分支
标签
git tag
列出所有标签git show [tag]
查看指定标签信息git tag [tag]
给最近一次提交打一个标签git tag [tag] [commit]
在某次提交上打一个标签git tag –d [tag]
删除本地指定标签git push origin –d tag [tag]
删除远程的标签git push origin [tag]
推送指定标签git push origin --tags
推送所有标签
查看信息
git status
查看文件状态git help [command]
获取帮助文档git [command] --help
获取帮助文档git log
查看当前分支的提交记录git log –all
查看所有分支的提交记录git log -5 --oneline --graph
查看最近 5 次提交记录,以单行、树状图形式显示git reflog
查看本地所有变更记录git diff
查看工作区和暂存区的差异git diff -- file
某个文件在工作区和暂存区的差异git diff HEAD
工作区和最新一次提交的差异git diff --cached
暂存区和 HEAD 的差异git diff branch_a branch_b – file
某文件在两个分支间的差异
远程操作
git remote -v
查看所有远程仓库git ls-remote origin
查看远程仓库引用列表git remote show origin
查看远程仓库信息git fetch origin
拉取远程仓库最新提交git pull origin master
拉取远程 master,并且合并到本地当前分支git remote add upstream url
添加一个新的远程仓库,命名为 upstreamgit push origin master
推送到远程 origin 的 master 分支git push origin --all
推送所有分支到远程仓库git remote prune origin
删除远程仓库中不存在的分支
撤销
git reset --soft HEAD
回滚到指定版本,保留工作区和暂存区git reset --mixed HEAD
回滚到指定版本,保留工作区,清空暂存区;–mixed 是默认参数,即等同于 git reset HEADgit reset --hard HEAD
回滚到指定版本,清空工作区和暂存区git reset HEAD -- file
清空暂存区中某个文件的修改git checkout -- file
检出暂存区的文件到工作目录git checkout .
检出暂存区的所有文件到工作目录git revert HEAD~ 2
回滚到 2 个祖先提交的版本,同时产生新的提交记录git revert --continue
冲突解决,且把修改提交到暂存区后执行回滚,生成一个新的提交git revert –abort
取消回滚,回到之前的状态
储藏
git stash
将工作区和暂存区的变更保存到储藏堆栈中,同时工作区和暂存区恢复到 HEAD 一样git stash list
查看储藏列表git stash pop
应用最近的一次储藏,并且从储藏栈中移除该条记录git stash apply stash@{0}
应用最近的一次储藏,不移除记录;等同于 git stash applygit stash pop --index
应用最近一次储藏,–index 表示暂存区的变更也会更新,否则只更新工作区变更git stash drop stash@{0}
移除储藏记录