本文是对廖雪峰官方网站 git教程中命令的总结
命令 | 作用 |
---|---|
安装和简单使用git | |
git config –global user.name xxx | 设置用户名字,如果不加名字,则查询 |
git config –global user.email xxx | 设置用户邮箱,如果不加邮箱,则查询 |
mkdir learngit | 创建目录learngit |
cd learngit | 切换到learngit目录下 |
pwd | 显示当前目录 |
git init | 在当前目录下初始化一个仓库 |
git add readme.txt | 将文件添加到仓库 |
git commit -m “wrote a readme file” | 把文件提交到仓库 |
时光穿梭机 | |
git status | 查看当前仓库状态 |
git diff readme.txt | 查看readme.txt修改详情 |
版本回退 | |
git log | 版本历史记录 |
git log –pretty=oneline | 简化显示的版本历史记录 |
git reset –hard HEAD^ | HEAD表示当前版本,^的个数表示版本后退次数,后退n个版本也可写为HEAD~n |
cat readme.txt | 查看当前版本下的readme.txt文件 |
git reset –hard 11ce59bceec5 | 最后一个参数是版本号,恢复到对应版本,版本号可以只写开始几位数字 |
git reflog | 版本跳转日志 |
git diff HEAD – readme.txt | 查看工作区readme.txt文件和版本库内最新版本的该文件的区别 |
撤销修改 | |
git checkout – readme.txt | 将readme.txt文件撤销到最近以此commit或add后的状态 |
git reset HEAD readme.txt | 撤销暂存区readme.txt文件,工作区修改仍然在,这是后再使用上一个命令checkout可以撤销掉工作去该文件的修改 |
删除文件 | |
git rm test.txt | 在工作区删除版本库中存在的文件后,使用该操作确认要删除,然后commit可以从版本库中删除该文件,和git add相对应 |
添加远程仓库 | |
git remote add origin githubUrl | 关联远程仓库origin |
git push -u origin master | 把本地仓库推送到远程仓库origin的master分支,-u在第一推送时起到关联本地master分支和远程master分支的作用 |
git push origin master | 向远程仓库推送本地最新修改 |
从远程仓库克隆 | |
git clone git@github.com:jacktown11/getskill.git | 复制远程仓库,从而创建本地仓库 |
创建与合并分支 | |
git branch dev | 创建dev分支 |
git checkout dev | 切换到dev分支 |
git checkout -b dev | 创建dev分支并切换到这个分支 |
git branch | 查看所有分支 |
git merge dev | 把dev分支合并到当前分支 |
git branch -d dev | 删除dev分支 |
分支管理策略 | |
git merge –no-ff -m “some message” dev | 将dev分支采用非fast forward模式合并到当前分支,该模式会保留合并历史,该次合并会进行一次新的commit,所以采用-m参数提供提交信息 |
bug分支 | |
git stash | 储存当前分支工作现场 |
git stash list | 显示存储的工作现场列表 |
git apply stash@{n} | 恢复指定的工作现场 |
git stash drop | 删除stash内容(最上一条,栈方式) |
git stash pop | 恢复工作现场并删除stash内容 |
feature分支 | |
git branch -D branchName | 强制删除分支 |
多人协作 | |
git remote | 查看远程仓库信息 |
git remote -v | 查看远程仓库详细信息 |
git pull origin master | 将远程master分支合并到当前版本库分支 |
git push origin dev | 将本地分支推送到远程dev分支,如果远程没有该分支会创建该分支 |
git branch –set-upstream dev origin/dev | 指定本地dev分支与远程dev分支的链接 |
git pull | 抓取远程提交的新更新 |
标签创建与管理 | |
git tag | 查看所有标签 |
git tag |
给当前分支添加标签名name |
git tag |
给 |
git tag -a |
带有信息地指定标签名 |
git tag -s |
使用PGP签名标签 |
git show |
查看指定标签名的版本 |
git tag -d |
删除标签 |
git push origin |
将某标签推送到远程 |
git push origin –tags | 将所有标签推送到远程 |
git push origin :refs/tags/ |
在本地删除标签后,删除远程标签 |
自定义git | |
git config –global color.ui true | 让bash界面显示颜色 |
git add -f |
强制添加某个文件(它可能被.ignore文件忽略添加了) |
git check-ignore -v |
检查某个文件被忽略是出于.ignore文件中哪条规则 |
git config –global alias. |
全局性地为命令(组合) |