- git status:掌握工作时区状态
- git diff:查看修改的内容
- git log:查看提交历史
- git reflog:查看命令历史
- git branch:查看分支
- HEAD指向的版本是当前版本
根据习惯缩写配置别名
git config --global alias.st status
st-----status//状态
co----checkout
ct-----commit//提交
br-----branch//分支
unstage-----reset HEAD//把暂存区的修改撤销掉
last-----log -1//最后一次提交信息
lg-----"log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"//丧心病狂式查看历史记录
- 把文件添加到仓库中总共分两步
//.1.从工作区添加不同文件到stage中
git add file
//2.一次可将多个文件从stage提交到master
git commit -m "introductions"
- 版本回退
//1.上一个版本
git reset --hard HEAD^
//2.通过commit id 控制回退,
//即使窗口关闭,可以通过git reflog查看命令历史,继而查看commit id
git reset --hard commit id
- 撤销修改
//1.工作区的文件修改,丢弃
git checkout --file
//2.添加到stage区的文件修改,丢弃
//①从stage撤回到工作区(unstage)
git reset HEAD file
//②在工作区撤销修改
git checkout -- file
//3.未提交到远程库的,使用版本回退
git reset --hard commit id
- 删除文件
//1.工作区中删除了文件
rm file
//2.版本库也想删除
//①从版本库删除--------与git add file对应
git rm file
//②提交
git commit -m "删除了XXX"
- 误删文件
//撤销删除
git checkout --file
//其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
- 推送到远程库
//要关联一个远程库,使用命令
git remote add origin git@github:username/repo-name.git
//关联后,使用命令,第一次推送master分支的所有内容;
git push -u origin master
//此后,每次本地提交后,只要有必要,就可以使用命令推送最新修改;
git push origin master
分支管理
创建分支
git branch dev
切换分支
git checkout branchName
创建分支dev并切换为当前分支
git checkout -b dev
合并分支
git merge dev
//此时已切换至主分支
不快速合并分支,生成一个commit
git merge --no-ff -m "introductions" dev
删除分支
git branch -d dev
解决冲突
无法快速合并,在工作区修改之后,add,commit
保护工作现场
git stash
查看工作现场
git stash list
恢复现场不删除stash
git stash apply
恢复现场并删除
git stash pop
恢复某个工作现场
git stash apply stash@{0}
未合并的分支强制删除
git branch -D dev
查看远程库信息
git remote -v
推送分支
git push origin branchName
抓取远程库分支
git checkout -b dev origin/dev
克隆
git clone git@github:username/repo-name.git
获取远程库某个分支的更新,再与本地的指定分支合并
git pull <远程主机名> <远程分支名>:<本地分支名>
//取回origin主机的next分支,与本地的master分支合并
git pull origin next:master
//远程分支是与当前分支合并,则冒号后面的部分可以省略
git pull origin next
//上面命令表示,取回origin/next分支,再与当前分支合并。实质上,这等同于先做git fetch,再做git merge。
$ git fetch origin
$ git merge origin/next
- 从远程库获取最新版到本地
从远程获取最新版本到本地
//使用如下命令可以在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
git fetch origin master:temp
//比较本地仓库与下载的temp分支
git diff temp
//合并temp分支到本地的master分支
git merge temp
//删除temp分支
git branch -d temp
- 打标签
//1.默认为HEAD打标签
git tag tagname
//2.指定commitID
git tag tagname commitID
//变迁按tag数字大小排序,不按创建时间
//3.带说明文字的标签
git tag -a tagname -m "introductions"
//4.查看标签内容
git show tagname
//5.可以指定标签信息
git tag -a tagname -m "blablabla..."
//6.可以用PGP签名标签
git tag -s tagname -m "blablabla..."
//7.查看所有标签。
git tag
//8.推送标签到远程
git push origin tagname
git push origin --tags
//9.删除标签
git tag -d tagname
//10删除一个远程标签
git push origin :refs/tags/tagname