常用命令

配置

Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。

命令作用
git init把这个目录变成Git可以管理的仓库
git clone url克隆仓库到本地
git config –list查看配置信息
git config -e [–global]编辑Git配置文件
git config [–global] user.name “[name]”设置用户名
git config [–global] user.email “[email address]”设置用户邮箱

增加/删除文件

命令作用
git add test.html文件添加到仓库
git add .将当前目录所有文件添加到仓库
git add -p添加每个变化前,都会要求确认
rm file本地删除文件
git rm file从版本库中删除文件
git rm –cached [file]停止追踪指定文件,但该文件会保留在工作区
git mv [file-original] [file-renamed]移动或重命名工作区文件

代码提交

命令作用
git commit -m “说明”把文件提交到仓库
git commit [file1] [file2] … -m [message]提交暂存区的指定文件到仓库区
git commit -a提交工作区自上次commit之后的变化,直接到仓库区
git commit -v提交时显示所有diff信息
git commit –amend -m [message]使用一次新的commit,替代上一次提交
如果代码没有任何新变化,则用来改写上一次commit的提交信息
git commit –amend [file1] [file2] …重做上一次commit,并包括指定文件的新变化

分支

命令作用
git branch查看分支
git branch -r列出所有远程分支
git branch -a列出所有本地分支和远程分支
git branch [branch-name]新建一个分支,但依然停留在当前分支
git checkout aa切换到aa分支
git checkout -b [branch]新建一个分支,并切换到该分支
git merge [branch]合并指定分支到当前分支
git cherry-pick [commit]选择一个commit,合并进当前分支
git branch -d [branch-name]删除aa
git push origin –delete [branch-name]
git branch -dr [remote/branch]
删除远程分支

标签

命令作用
git tag列出所有tag
git tag [tag]新建一个tag在当前commit
git tag [tag] [commit]新建一个tag在指定commit
git tag -d [tag]删除本地tag
git push origin :refs/tags/[tagName]删除远程tag
git show [tag]查看tag信息
git push [remote] [tag]提交指定tag
git push [remote] –tags提交所有tag
git checkout -b [branch] [tag]新建一个分支,指向某个tag

远程同步/推送

命令作用
git remote add origin git@仓库地址关联远程仓库
git remote -v显示所有远程仓库
git remote show [remote]显示某个远程仓库的信息
git remote add [shortname] [url]增加一个新的远程仓库,并命名
git fetch从远程获取代码库
git fetch [remote]下载远程仓库的所有变动
git push -u origin master上传本地指定分支到远程仓库
git push主分支推送到远程仓库
git push [remote] –force强行推送当前分支到远程仓库,即使有冲突
git push [remote] –all推送所有分支到远程仓库
git pull [remote] [branch]获取远程服务器上的变更并合并到工作目录

撤销

命令作用
git reset –hard 版本ID回退历史版本
git reset [file]重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
git reset [commit]重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
git reset –keep [commit]重置当前HEAD为指定commit,但保持暂存区和工作区不变
git revert [commit]新建一个commit,用来撤销指定commit
后者的所有变化都将被前者抵消,并且应用到当前分支
git checkout [file]恢复暂存区的指定文件到工作区
git checkout [commit] [file]恢复某个commit的指定文件到暂存区和工作区
git checkout .恢复暂存区的所有文件到工作区
git stash
git stash pop
暂时将未提交的变化移除,稍后再移入

查看信息

命令作用
git status查看仓库当前的状态
git log查看历史提交记录
git log –stat显示commit历史,以及每次commit发生变更的文件
git log -S [keyword]搜索提交历史,根据关键词
git log –follow [file]显示某个文件的版本历史,包括文件改名
git log -p [file]显示指定文件相关的每一次diff
git shortlog -sn显示所有提交过的用户,按提交次数排序
git diff显示暂存区和工作区的差异

其他

命令作用
git archive生成一个可供发布的压缩包

git清空所有comment记录(含远程仓库)

创建orphan分支

orphan: 创建一个一个无提交记录的分支,如果只是创建了分支,而未有任何提交记录,其实它并没有创建

1
git checkout --orphan test # 分支名自定义

添加所有文件到暂存区

1
git add .

提交到本地仓库

1
git commit -m'commit message'

删除原本的分支(master)

1
git branch -D master

重命名当前分支

1
git branch -m master

push到远程仓库

1
2
3
4
git push origin master --force

这里要使用强行提交,因为你本地的提交记录和远程仓库的不一致,无法匹配被拒绝push
--force:可以无视这一点,直接覆盖远程仓库

参考文章

[1]: 常用 Git 命令清单
[2]: git清空所有comment记录(含远程仓库)