初始化git全局基础配置
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
初始化git仓库
git init
添加文件进入暂存区,可以多次使用add命令
git add <file>
git add .
可以提交当前目录下的变更文件到暂存区
将提交的文件git仓库,并填写当前提交信息
git commit -m <message>
显示当前git的状态
git status
显示从最近到最远的提交记录
git log //全信息
git log --pretty=oneline //简略版
简单版本回退
在git中,HEAD
为当前版本,回退到上一个版本为 HEAD^
,回退到上上个版本为HEAD^^
,回退前100个版本为HEAD~100
commit id
可以填入全部或者填写前几位
git reset --hard <HEAD> || <commit id>
简单回退实例
查看git历史记录
git reflog
git查看文件区别
git diff --cached
比较的是暂存区的文件与仓库分支里(上次git commit
后的内容)的区别。
git diff HEAD --
命令可以查看工作区和版本库里面最新版本的区别。
git文件放弃变更
git checkout -- file
命令中的--
很重要,没有--
,就变成了“切换到另一个分支”的命令checkout命令。
git未commit之前,add之后放弃变更
git checkout -- <file>...
万一文件已经add
,在commit
之前发现,还是可以以下命令还原到commit
之前,然后在操作
git reset HEAD <file>...
git checkout -- <file>...
git删除文件
git rm <file>
git本地库关联远程库
git remote add origin <remote address>
git查看远程库
git remote -v
git提交到master远程分支
把本地库的内容推送到远程,用git push
命令,实际上是把当前分支master
推送到远程。
由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
git push <remote branch> <local branch>
小结:要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
;
关联后,使用命令git push -u origin master
第一次推送master
分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改
git克隆远程仓库
git支持多种格式的地址,如git://
或者https://
git clone <remote address>
git创建分支
git checkout <branch name>
-b
创建并进入当前分支
git checkout -b <branch name>
git查看分支
git branch
git切换分支
git checkout <branch name>
合并分支
git merge <branch name>
删除分支
git branch -d <branch name>
git查看合并分支图
git log --graph
git拉取远程分支
git pull
git隐藏当前暂存区
git stash save -m <message>
git查询隐藏区列表
git stash list
git恢复隐藏区的项目
git stash apply --index <stash> //恢复并不删除stash
git stash pop --index <stash index> //恢复并删除stash
git删除隐藏区的项目
git stash drop [<stash>] //单个移除定向序列的stash
git stash clear //删除所有的stash
git标签操作
新增标签:
git tag <tag name> <commit id>
不填commit id
就以HEAD
为准
新增标签并填写commit
git tag -a <tag name> -m <message>
查询所有标签
git tag
推送一个本地标签到远程
git push origin <tag name>
推送本地所有未提交的标签到远程
git push origin --tags
删除一个本地标签
git tag -d <tag name>
删除一个远程标签
git push origin :refs/tags/<tag name>