git 的常用命令
git branch : 查看本地分支
git branch -a : 查看所有分支(包括远程)
git branch name : 创建分支
git branch -d name : 删除分支
git checkout name : 切换分支
git checkout -b name : 创建+切换分支
git merge name : 合并某分支到当前分支
git push origin -delete <branchname> : 删除远程分支
git merge --no-ff -m "merge with no-ff" branchName
表示禁用“Fast forward”,合并就跟一次提交一样git push [远程名] [本地分支]:[远程分支]
如果省略 [本地分支]
表示将空白分支提到远程分支,也能够删除远程分支重新提交: 若暂存区没有新的修改,相当于重写了提交信息
$ git commit --amend -m "message"
丢弃工作区的修改: 若有add则从暂存区恢复,若无add则从仓库恢复。
$ git checkout -- filename
注:git checkout -- file
命令中的“–”很重要,没有“–”,就变成了“创建一个新分支”的命令
撤销暂存区修改: 把暂存区的修改回退到工作区。
$ git reset HEAD readme.txt
回退版本: HEAD
表示当前版本,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,上100个版本可写成HEAD~100
。用上hard参数后,文件会回到原来的commit状态,不用hard参数,工作目录的文件修改会保留,状态为未提交。
git reset --hard HEAD^
$ git log --graph --pretty=oneline --abbrev-commit
--graph
可以看到分支合并图--pretty=oneline
Log会显示在一行--abbrev-commit
会显示版本号的缩写形式如果之前有过版本回退操作,则git log
只能显示当前版本之前的记录,如果想看所有的记录(包括当前版本之后的版本),可以使用:
$ git reflog
$ git remote -v
origin git@github.com:rgkjhshi/blog.git (fetch)
origin git@github.com:rgkjhshi/blog.git (push)