2018/07/11
参考:git-廖雪峰的官方网站
版本回退:
从最近到最远的提交日志:
git log
如果嫌输出信息太多,可以加上--pretty=oneline
git使用
HEAD
表示当前版本,上一个版本就是HEAD^
,上上个版本就是HEAD^^
,很多个版本就是HEAD~n
;
命令:git reset --hard HEAD^
从过去回到未来:
git reset --hard 版本号(版本号不需要写全,写前几位即可)
git reflog
用来记录每一次命令
撤销修改:
撤销工作区:
git checkout --filename
撤销提交到暂存区的:git reset HEAD filename
删除文件:
删掉提交到版本库的文件:
git rm filename
;
然后:git commit -m "remove filename"
工作区误删:
从版本库替换工作区:git checkout --filename
分支管理:
创建dev分支,然后切换:
git checkout -b dev
相当于以下两条命令:
git branch dev
git checkout dev
查看分支:
git branch
;当前分支前面会标一个*
git branch -a
:查看远程分支
切换回master分支:
git checkout master
把dev分支的工作成果合并到master分支上:
git merge dev
删除分支:
git branch -d dev
查看分支合并图:
git log --graph
分支合并策略:合并分支时加上--no-off就可以使用普通模式合并合并后的历史有分支
BUG分支:
工作途中需要修复bug,可以把当前工作储藏起来git stash
恢复:两种方式
git stash apply
:stash内容没有删除:git stash drop
git stash pop
恢复的同时把stash内容删除
feature分支:添加新功能
丢弃一个没有合并的分支(强行删除):git branch -D name
多人协作:远程仓储的默认名称是origin
查看远程仓库的信息:git remote
或者git remote -v
推送分支:把该分支上的所有本地提交到远程库,推送时要指定本地分支推送master分支:
git push origin master
如果要推送其他分支,比如dev:git push origin dev
那些需要推送到远程:
master是主分支,要时刻与远程同步
dev是开发分支,团队成员都需要在上面工作,需要同步
bug分支只用于本地修复bug,不需要
freature分支是否需要,取决于自己
因此,多人协作的工作模式通常是这样:
首先,可以试图用git push origin <branch-name>推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。
标签管理:
创建标签:
git tag name
查看所有标签:git tag
对某一个commit id打标签:git tag name id
标签不是按时间顺序的,而是按字母顺序
查看标签信息:git show tagname
创建带有说明的标签:-a制定标签名,-m指定说明文字:git tag -a name -m "info" id
删除标签:git tag -d name
推送:git push origin tagname
删除远程标签(先删本地):git push origin:/addr/tagname
网友评论