Git的其他命令
查看本地分支
git branch
查看远程分支
git branch -r
创建新分支
git checkout -b v1.0 origin/master
在master基础上生成的
将分支推送到远程
git push origin HEAD -u
或者
$ git push origin v1.0:v1.0
把新建的本地分支push到远程服务器,远程分支与本地分支同名
删除远程分支
我比较喜欢的简单方式,推送一个空分支到远程分支,其实就相当于删除远程分支:
git push origin :v1.0
也可以使用:
git push origin --delete v1.0
这两种方式都可以删除指定的远程分支
版本回退
$ git reset --hard HEAD^
回退指定版本
$ git reset --hard 1094a
git log 查看版本号
小结
现在总结一下:
-
HEAD
指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
。 -
穿梭前,用
git log
可以查看提交历史,以便确定要回退到哪个版本。 -
要重返未来,用
git reflog
查看命令历史,以便确定要回到未来的哪个版本。
你可以发现,Git会告诉你,git checkout -- file
可以丢弃工作区的修改:
$ git checkout -- readme.txt
修改bug,不想提交现有代码,幸好,Git还提供了一个stash
功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:
$ git stash
Saved working directory and index state WIP on dev: f52c633 add merge
不想提交,暂存起来就用git stash,比如紧急修复bug
工作区是干净的,刚才的工作现场存到哪去了?用git stash list
命令看看:
$ git stash list
stash@{0}: WIP on dev: f52c633 add merge
工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
一是用git stash apply
恢复,但是恢复后,stash内容并不删除,你需要用git stash drop
来删除;
另一种方式是用git stash pop
,恢复的同时把stash内容也删了:
你可以多次stash,恢复的时候,先用git stash list
查看,然后恢复指定的stash,用命令:
$ git stash apply stash@{0}
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>
强行删除。