Git常用命令

这篇文章主要是为了自己能快速翻找Git命令,不做具体介绍,想学习Git怎么用,请移步廖雪峰的《Git教程》。这篇教程浅显易懂,花个几小时就能懂,上手非常快的。

Git配置:

``` //配置用户名 $ git config --global user.name "Your Name"
//配置Email地址
$ git config --global user.email "email@example.com"
注意:git config命令的--global参数,表示你这台机器上所有的Git仓库都会使用这个配置

下面是一些非必需的配置,看个人喜好。
//配置显示颜色
$ git config --global color.ui true

//配置别名(非必须,可忽略)
$ git config --global alias.st status 
    //将status配置为st = $ git status => $ git st
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
$ git config --global alias.unstage 'reset HEAD' 
    //$ git reset HEAD file => $ git unstage file
$ git config --global alias.last 'log -1'
    //显示最后一次提交信息 $ git last
<h2>初始化/添加/提交:</h2>
//初始化Git仓库
$ git init

//将文件添加到仓库
$ git add <file>
$ git add mx.txt

//将文件提交到仓库
$ git commit -m "提交描述"
<h2>查看状态/历史/对比:</h2>
//查看仓库当前状态
$ git status

//查看修改内容,对比
$ git diff

//查看工作区和版本库最新版本区别
$ git diff HEAD -- mx.txt

//显示最近到最远的提交日志,提交历史
$ git log
$ git log --pretty=oneline

//查看分支合并情况
$ git log --graph
$ git log --graph --pretty=oneline --abbrev-commit

//查看命令操作历史记录
$ git reflog
<h2>回退/撤销/删除:</h2>
//回退上一个版本
$ git reset --hard HEAD^
    //上一个版本HEAD^
    //上上一个版本HEAD^^
    //上100个版本HEAD~100
    //HEAD指当前版本

//回退某个指定版本
$ git reset --hard <commit_id>
$ git reset --hard 3628164
    //3628164 commit id,版本号可以不写全,能找到就可以

//把暂存区的修改回退到工作区
$ git reset HEAD <file>

//撤销工作区文件修改到最近一次commit或add
$ git checkout -- <file>
$ git checkout -- mx.txt

//从版本库中删除文件
$ git rm <file>
$ git rm mx.txt
<h2>远程仓库:</h2>
//本地仓库和远程仓库关联(GitHub仓库)
$ git remote add origin git@server-name:path/repo-name.git
$ git remote add origin git@github.com:github用户名/github仓库
$ git remote add origin git@github.com:mingsixue/mxue.git
    //origin 远程仓库名字,Git默认叫法

//查看远程仓库信息
$ git remote

//查看远程仓库更详细信息
$ git remote -v

//把本地仓库内容推送到远程仓库
$ git push -u origin master
$ git push origin <branch_name>
$ git push origin master
    //-u 参数会把本地master分支和远程master分支关联起来

//把远程仓库内容拉到本地仓库
$ git pull

//指定本地dev分支和远程origin/dev分支链接
$ git branch --set-upstream <branch_name> origin/<branch_name>
$ git branch --set-upstream dev origin/dev

//从远程仓库克隆
    //SSH方式
    $ git clone git@github.com:mingsixue/mxue.git
    //HTTPS方式
    $ git clone https://github.com/mingsixue/mxue.git
<h2>分支管理:</h2>
//创建新的分支
$ git branch <branch_name>
$ git branch dev

//创建新分支并切换
$ git checkout -b <branch_name>
$ git checkout -b dev
    //-b创建分支并切换,相当于下面命令
    //$ git branch dev
    //$ git checkout dev

//切换分支
$ git checkout <branch_name>
$ git checkout dev

//查看当前分支
$ git branch

//把dev分支合并到master,快进模式Fast-forward,删除分支后会丢掉分支信息
$ git merge <branch_name>
$ git merge dev

$ git merge --no-ff -m "提交描述" dev
    //--no-ff表示禁用Fast-forward,普通合并模式,会创建一个新的commit

//删除分支
$ git branch -d <branch_name>
$ git branch -d dev

//强行删除分支
$ git branch -D <branch_name>
$ git branch -D dev

//储存工作现场
$ git stash

//查看储存的工作现场
$ git stash list

//恢复储存的工作现场内容
$ git stash apply
$ git stash apply stash@{0}

//删除储存的工作现场
$ git stash drop

//恢复并删除工作现场
$ git stash pop
    //相当于上面两条命令
<h2>标签:</h2>
//创建标签
$ git tag <tag_name>
$ git tag v1.0
    //默认标签打在最新的commit上

//创建指定commit id的标签
$ git tag <tag_name> <commit_id>
$ git tag v0.9 6224937

//创建带说明的标签
$ git tag -a <tag_name> -m "标签描述" <commit_id>
$ git tag -a v0.1 -m "标签描述"
$ git tag -a v0.1 -m "标签描述" 3628164

//查看所有标签
$ git tag

//查看标签信息
$ git show <tag_name>
$ git show v0.9

//删除标签
$ git tag -d <tag_name>
$ git tag -d v0.9

//推送标签到远程仓库
$ git push origin <tag_name>
$ git push origin v0.9

//一次性推送标签到远程仓库
$ git push origin --tags

//删除远程仓库标签
$ git push origin :refs/tags/<tag_name>
$ git push origin :refs/tags/v0.9
    //本地要先删除标签
<h2>忽略特殊文件</h2>
在Git工作区的根目录创建 .gitignore 文件,把要忽略的文件名写进去,一行一个,支持 * 匹配。写完后提交到Git。

具体怎么忽略,看这里<a href="https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013758404317281e54b6f5375640abbb11e67be4cd49e0000" target="_blank">忽略特殊文件</a>
//查看文件被哪条规则忽略
$ git check-ignore -v <file>

//强制添加文件
$ git add -f <file>
<h2>命令行:</h2>
一些常用的命令行命令。
//创建空目录
$ makir <dir_name>
$ mkdir mxue

//进入mxue目录
$ cd <dir_name>
$ cd mxue

//显示当前目录路径
$ pwd

//查看隐藏目录
$ ls -ah

//查看文件内容
$ cat <file>
$ cat mx.txt

//删除文件
$ rm <file>
$ rm mx.txt
<h2>git错误:</h2>
<h3>错误:fatal: refusing to merge unrelated histories</h3>
$ git pull origin master --allow-unrelated-histories
参考文章:<a href="http://blog.csdn.net/lindexi_gd/article/details/52554159" target="_blank">git无法pull仓库refusing to merge unrelated histories</a>

<h3>错误:failed to push some refs to 'git@github.com:mingsixue/Chrome-Plugin.git'</h3>

$ git pull --rebase origin master

出现错误的主要原因是github中的README.md文件不在本地代码目录中
参考文章:<a href="https://jingyan.baidu.com/article/f3e34a12a25bc8f5ea65354a.html" target="_blank">如何解决failed to push some refs to git</a>

http://blog.mingsixue.com/it/git-command-line.html
posted @ 2018-01-16 20:17  前端小老虎  阅读(129)  评论(0编辑  收藏  举报