Git基础知识教程整理(Git分支管理)

分支的建立、合并与删除

建立分支与切换分支

$ git branch develop

$ git checkout developgit

或者安全

$ git checkout -b develop

git checkout命令加上-b参数表示建立并切换。git branch或者(git branch -a)后面不跟分支名时指列出全部分支,当前分支前面加*。编辑器

$ git branch

合并分支

git merge命令用于合并指定分支到当前分支,若是当前分支是master分支,git merge develop指将develop分支合并到master分支。ip

$ git merge develop

删除分支

删除本地develop分支,不能在当前分支执行删除当前分支的操做。开发

$ git branch -d develop

解决冲突

冲突能够说是两个分支的冲突,产生的缘由是两个已经提交的分支的相同文件相同位置的的不一样操做进行了合并rem

多人协做开发的时候,若是出现了你没有改过的文件跟你冲突了,必定要去找到当事者,说清楚是如何冲突,而后协商解决,修文件,确保没问题后在从新add、commit、push。同步

通常代码编辑器都集成了git,如WebStrom、VsCode,能够很直观的查看冲突代码,并进行代码合并。工作流

Rebase操做

合并多个commit为一个完整commit

$ git rebase -i [startpoint] [endpoint]

其中-i的意思是--interactive,即弹出交互式的界面让用户编辑完成合并操做,[startpoint] [endpoint]则指定了一个编辑区间,若是不指定[endpoint],则该区间的终点默认是当前分支HEAD所指向的commit(注:该区间指定的是一个前开后闭的区间)。若是不指定分支默认操做当前分支it

将当前分支的一段commit粘贴到另外一个分支上

$ git rebase [startpoint] [endpoint] --onto [branchName]

rebase的优势和缺点

优势io

  • rebase最大的好处是你的项目历史会很是整洁
  • rebase 致使最后的项目历史呈现出完美的线性——你能够从项目终点到起点浏览而不须要任何的 fork。这让你更容易使用 git log、git bisect 和 gitk 来查看项目历史

缺点

  • 安全性,若是你违反了 rebase 黄金法则(毫不要在公共的分支上使用它),重写项目历史可能会给你的协做工做流带来灾难性的影响
  • 可跟踪性,rebase 不会有合并提交中附带的信息——你看不到 feature 分支中并入了上游的哪些更改

修复冲突

git rebase --abort会回到rebase操做以前的状态,以前的提交的不会丢弃。

$ git rebase --abort

git rebase --skip则会将引发冲突的commits丢弃掉。

$ git rebase --skip

git rebase --continue用于修复冲突,提示开发者,一步一步地有没有解决冲突,fix conflicts and then run "git rebase --continue"。

$ git rebase --continue

远程协做

本地仓库和远程仓库,Git自动把本地的master分支和远程的master分支对应起来了,而且,远程仓库的默认名称是origin。

查看远程库(git remote)

$ git remote

查看远程库详细信息

$ git remote -v

往远程仓库推送代码,须选择本地分支,下面指往develop分支推送代码

$ git remote origin develop

只有须要协同开发的才须要往远程仓库推送代码

  • master分支是主分支,所以要时刻与远程同步;
  • dev分支是开发分支,团队全部成员都须要在上面工做,因此也须要与远程同步;
  • bug分支只用于在本地修复bug,不用推送到远程;
  • feature分支是否推到远程,取决于你是否和你的小伙伴合做在上面开发。

标签管理

建立标签 (git tag <tagname>)

$ git tag v1.0

查看标签(git tag)

$ git tag

默认标签是打在当前分支最新提交的commit上的,若是要打在历史的commit上,找到历史提交的commit id(git tag v0.9 <commit id>)

git tag v0.9 f52c633

查看标签信息(git show <tagname>)

$ git show v0.9

建立带有说明的标签,用-a指定标签名,-m指定说明文字

$ git tag -a v0.1 -m "version 0.1 released" 1094adb
相关文章
相关标签/搜索