根据自己在项目中使用比较多的,总结了以下比较常用的git命令:
#关系图
远程仓库(Remote) - 本地仓库(Repository) - 暂存区(Index) - 本地工作空间(Workspace)-------------------------------------------------
#git个人邮箱昵称配置git config --global user.email "xxx@example.com"git config --global user.name "xxx"#生成秘钥
ssh-keygen -t rsa#git clone时出现
Permissions 0670 for '/home/xxx/.ssh/id_rsa' are too open.直接chmod 400 ~/.ssh/id_rsa即可#秘钥存放地址
cd ~/.ssh#仓库初始化(删除仓库的话把目录下的 .git 目录删除即可)
git inittips: ls -al 会看到有个.git文件夹
#仓库初始化(裸仓)
git init --bare-------------------------------------------------
-------------------------------------------------
#把文件加到暂存区(stage/index)git add test.txt或(.代表当前目录下的所有)git add .#提交(暂存区的所有内容提交到本地仓库)
git commit -m "commit mark"#提交(-a 会将修改或者删除的文件自动加到暂存区,但是新增文件不会;如果没有新增文件的话就相当于add & commit)
git commit -a -m "commit mark"#查看仓库当前的状态
git status-------------------------------------------------
-------------------------------------------------
#克隆(-o 参数可以命名远程主机名,默认为origin)git clone https://github.com/jquery/jquery.gitgit clone -o qewr https://github.com/jquery/jquery.git#列出所有远程仓库
git remote -v#查看远程仓库详细信息
git remote show <主机名>#将一个库加到自己主机上 命名为 qwer
git remote add <主机名> <网址>git remote add qwer git@github.com:ddmmddmm/wuziqi.git#删除远程库配置
git remote rm <主机名>git remote rm qwer#更改远程仓库名称
git remote rename <原主机名> <新主机名>git remote rename qwer getAsdf-------------------------------------------------
-------------------------------------------------
#下载远程仓库的所有变动git fetch [remote]#取回远程仓库的变化,并与本地分支合并
git fetch origin mastergit pull [remote] [branch]#将本地分支推送到远程仓库
git push origin dev:dev意思是“上传我本地的 dev 分支到远程仓库中去,仍旧称它为 dev 分支”或者 git push origin dev#将本地分支推送到远程仓库并建立追踪关系git push -u origin dev:dev-------------------------------------------------
-------------------------------------------------
#恢复暂存区的指定文件到工作区git checkout [file]#重置暂存区与工作区,与上一次commit保持一致
git reset --hard#回退到上个commit
git reset --hard HEAD^#回退到上上个commit(在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100)
git reset --hard HEAD~2#重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
$ git reset --hard [commit]#查看某个文件修改内容
git diff test.txt#显示具体的某次的改动的修改
git show [commitId]#查看提交记录(--pretty=oneline 参数可以单行显示)
git log#查看操作记录(如果回退版本之后,又想恢复到当前版本,可以通过此命令查到commit_id,从而恢复)
git reflog#删除文件(记得commit)
git rm xxx-------------------------------------------------
-------------------------------------------------
#查看本地分支git branch#列出所有远程分支
git branch -r#列出所有本地分支和远程分支
git branch -a#创建分支
git branch dev#切换分支
git checkout dev#创建+切换分支
git checkout -b dev#合并dev到当前分支
git merge dev#删除分支
git branch -d dev#查看分支的追踪关系
git branch -vv#本地分支与远程分支建立关联(git pull,git push时可以不用指定,另一个更为简洁的方式是初次push时,加入-u参数)
git branch --set-upstream-to=origin/dev_xxx dev_xxx
-------------------------------------------------
-------------------------------------------------
#列出所有taggit tag#新建一个一个叫"myTag"的tag在当前commit
git tag myTag#新建一个tag在指定commit
git tag myTag [commit]#删除本地指定tag
git tag -d myTag#查看tag信息
git show myTag#提交指定tag
git push origin myTag#提交所有tag
git push origin --tags-------------------------------------------------
-------------------------------------------------
#将当前的修改储藏起来git stash#查看储藏堆栈
git stash list#从储藏中恢复,但不删除(stash@{2}在list中可以看到)
git stash apply stash@{2}#从储藏中恢复,并删除(stash@{2}在list中可以看到)
git stash pop stash@{2}#从储藏中删除
git stash drop stash@{2}-------------------------------------------------
参考:
#git的使用
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000#git - 简明指南
http://rogerdudler.github.io/git-guide/index.zh.html#常用 Git 命令清单
http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html