git命令大全
关联用户:$ git config --global user.name "yourName"
关联邮箱账号:$ git config --global user.email "yourEmail"
创建新文件夹:$ mkdir <file>
显示当前目录:$ pwd
将某个目录变成Git仓库:$ git init
将文件添加到仓库:$ git add <file>
把文件提交到仓库,-m后面输入的是本次提交的说明:$ git commit -m "wrote a readme file"
显示仓库当前的状态:$ git status
查看文件的修改内容:$ git diff <file>
查看提交历史:$ git log
单行显示提交历史:$ git log --pretty=oneline
把当前版本回退到上一个版本:$ git reset --hard HEAD^
查看文件的内容:$ cat readme.txt
回退到某一版本[例如3628164]:$ git reset --hard 3628164
查看命令历史:$ git reflog
查看文件工作区和版本库里最新版本的区别:$ git diff HEAD -- <file>
丢弃文件工作区的修改:$ git checkout -- <file>
把文件暂存区的修改回退到工作区:$ git reset HEAD <file>
删除文件:$ rm <file>
创建SSH Key:$ ssh-keygen -t rsa -C "yourEmail"
建立本地仓库与GitHub远程仓库的关联:$ git remote add origin git@github.com:GitHubName/<file>.git
或者:$ git remote add origin https://github.com/GitHubName/<file>.git
把本地库的内容推送到远程,加-u参数,把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令:$ git push -u origin master
简化后的推送命令:$ git push origin master
从GitHub远程仓库克隆:$ git clone git@github.com:GitHubName/<file>.git
或者:$ git clone https://github.com/GitHubName/<file>.git
查看文件列表:$ ls
创建“dev”分支:$ git branch dev
切换到“dev”分支:$ git checkout dev
创建“dev”分支并且切换到“dev”分支:$ git checkout -b dev
列出所有分支,当前分支前面会标一个*号:$ git branch
合并“dev”分支到当前分支:$ git merge dev
删除dev分支:$ git branch -d dev
用带参数的 git log 查看分支的合并情况:$ git log --graph --pretty=oneline --abbrev-commit
--no-ff参数,表示禁用Fast forward,因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去:$ git merge --no-ff -m "merge with no-ff" dev
把当前工作现场“储藏”起来:$ git stash
查看储藏的工作现场列表:$ git stash list
恢复“储藏”的工作现场同时把stash内容也删除:$ git stash pop
恢复“储藏”的工作现场但不删除stash内容,需要用git stash drop来删除:$ git stash apply
丢弃一个没有被合并过的“dev”分支:$ git branch -D dev
查看远程库的信息:$ git remote
查看远程库的详细信息:$ git remote -v
推送“dev”分支到远程:$ git push origin dev
在本地创建dev和远程分支对应的dev分支:$ git checkout -b dev origin/dev
指定本地dev分支与远程origin/dev分支的链接:$ git branch --set-upstream dev origin/dev
抓取分支:$ git pull
打一个新标签v1.0:$ git tag v1.0
查看所有标签:$ git tag
对某一 commit id(例如6224937) 打标签:$ git tag v0.9 6224937
查看v0.9标签信息:$ git show v0.9
创建带有说明的标签,用-a指定标签名,-m指定说明文字,3628164为示例commit id:$ git tag -a v0.1 -m "version 0.1 released" 3628164
通过-s用私钥签名一个标签:$ git tag -s v0.2 -m "signed version 0.2 released" fec145a
删除本地v0.1标签:$ git tag -d v0.1
推送v1.0标签到远程:$ git push origin v1.0
一次性推送全部尚未推送到远程的本地标签:$ git push origin --tags
删除本地v0.9标签:$ git tag -d v0.9
删除远程v0.9标签:$ git push origin :refs/tags/v0.9
让Git显示颜色:$ git config --global color.ui true
配置st为status的别名:$ git config --global alias.st status