资讯专栏INFORMATION COLUMN

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

xingpingz / 2367人阅读

摘要:分支的创建合并与删除创建分支与切换分支或者命令加上参数表示创建并切换。或者后面不跟分支名时指列出所有分支,当前分支前面加。删除分支删除本地分支,不能在当前分支执行删除当前分支的操作。

分支的创建、合并与删除 创建分支与切换分支
$ git branch develop

$ git checkout develop

或者

$ git checkout -b develop

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

$ git branch
合并分支

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

$ git merge develop
删除分支

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

$ git branch -d develop
解决冲突

冲突可以说是两个分支的冲突,产生的原因是两个已经提交的分支的相同文件相同位置的的不同操作进行了合并

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

一般代码编辑器都集成了git,如WebStrom、VsCode,可以很直观的查看冲突代码,并进行代码合并。

Rebase操作 合并多个commit为一个完整commit
$  git rebase -i  [startpoint]  [endpoint]

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

将当前分支的一段commit粘贴到另一个分支上
$ git rebase   [startpoint]   [endpoint]  --onto  [branchName]
rebase的优点和缺点

优点

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 )

$ git tag v1.0

查看标签(git tag)

$ git tag

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

git tag v0.9 f52c633

查看标签信息(git show

$ git show v0.9

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

$ git tag -a v0.1 -m "version 0.1 released" 1094adb

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/102303.html

相关文章

  • Git基础知识教程整理Git基本操作)

    摘要:简介是目前世界上最先进的分布式版本控制系统没有之一。查看所有分支的版本操作记录。工作区直接删除文件,提交到版本库。与他人协作涉及管理远程仓库以及根据需要推送或拉取数据。克隆远程仓库支持多种协议,默认使用,也可以使用等其他协议。 Git简介 Git是目前世界上最先进的分布式版本控制系统(没有之一)。Linux之父Linux用C语言写了Git分布式版本控制系统。 分布式版本控制系统与集中式...

    187J3X1 评论0 收藏0
  • 【强烈推荐】程序猿开发工具(第二期)

    摘要:这允许开发人员以逻辑区间建立并提交变动,以防止当部分提交成功时出现的问题纳入版本控管的元数据每一个文件与目录都附有一組属性关键字并和属性值相关联。 代码管理 Git...

    KevinYan 评论0 收藏0
  • Python和FFmpeg强强联合

    摘要:核心子进程运行控制。由应用来看,关键是录制屏幕和录制摄像头,以及用快捷键控制在这两者之间切换。限制条件是超过三个月快捷键失效。实现分两步安装时在注册表特定位置,假如是,写入目录相关信息。在程序运行时,检测当前目录是否存在于注册表下。 录制项目终于做完,不用总是提醒自己抓紧时间这样来想问题了。在完成之后带着一些满足感,回头看看哪些地方是需要改进的,哪些地方又是有更好的替代方案,自己又有哪...

    ThreeWords 评论0 收藏0
  • Git入门教程(上)

    摘要:提交一个简单文件首先,使用的客户端将项目到本地假设将这个项目的目录放在了中然后打开进入目录然后在目录里面新建一个写上然后这样,就将文件加到本地的项目中。命令只是提交到本地仓库,并没有提交到远端。合并分支将的分支合并到当前分支。 提交一个简单文件 首先,使用GitHub的`windows客户端将项目clone到本地假设将test这个项目的目录放在了中C:xampphtdocsGithub...

    xzavier 评论0 收藏0

发表评论

0条评论

xingpingz

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<