使用Git实现团队协作开发提高效率

本文深入介绍了Git版本控制系统的原理及应用,对比了Git与SVN的不同之处,详细讲解了Git的分支管理方式,并提供了团队协作的最佳实践。同时,文章还介绍了如何通过图形化工具简化Git的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 

为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

git与github有什么区别?

git(工具)是一个版本控制工具
github(社区)是一个用git做版本控制的项目托管平台,并附带交友分享功能。。类似的平台还有bitbucket、oschina的码云这里写图片描述(逗逼名字)。 这些平台基本都是以开源项目著称的,当然也提供一定的收费私有化托管服务。 当然(私有化),估计大家还听说过coding、gitlab、gogs,这些都是做一些私有化项目托管的平台。gitlab、gogs都是开源的git托管平台,可以自己私有化部署。
git和svn的区别


svn是一个中心化的版本控制工具


每一个SVN用户都可以从服务器checkout代码,同样也可以像服务器提交(commit)代码,可以更新(update)到别人提交的代码。

优势:所有的操作都需要基于SVN中心服务器,所以操作起来必然很简单。
劣势:正因为所有的操作都要基于SVN中心服务器,所以只要SVN中心服务出现冲突(conflict)、错误(error)都会给整个团队之中的成员带来灾难。

git是一个去中心化的分布式版本控制工具


每一个节点都可以充当控制中心的作用,所以从GIT服务器复制(clone)一份到本地,同样也可以单独对自己的本地git版本进行单独管理。 在针对单个git版本库的操作(commit,pull)就如同SVN的commit与update操作。当然,不同版本库之间的操作就是拉取(pull),推送(push)。

git的命令有很多,如果记不住的话, 可以使用图形化的工具 地址在:https://tortoisegit.org/

理解分支(branch)是什么?

以一个APP为例,我们研发一款移动APP的过程中,必然是一个迭代迭代的来。首先是1.0、1.1、1.2…….2.0…..3.0等等~。

这个时候为了防止影响已经稳定的线上版本,我们必然会对已经上线的版本做一个备份(master分支),使用另一个copy过来的项目进行开发(dev分支)


这样公司的程序员小A就可以在dev分支上开发了,就算开发的时候小A脑残,不小心把逻辑弄错,无法正常运行的时候。我们还有稳定版本的Master分之,可以使用。(当然,你也可以回滚revert)


因为,存在一个本地仓库,我们就可以在一个功能没有完全开发完毕的时候先提交commit到本地仓库,测试好没有问题之后再push到远程git服务器。 避免了,没有开发完成的项目产生任何差池无法处理。

如何进行团队协作?

如果只有一个开发者开发,那么上诉的操作并没有什么大碍。对于实际的开发工作中我们往往是多个开发者共同来开发一个项目。多人修改一个文件必然会出现冲突(conflict); 不同人的思想开发一个逻辑难免会出现漏洞与错误;如何进行code review、代码质量把控、冲突降低才是git的优势。


同理,A、B、C三位员工还是可以在自己的个人分之上进行开发,所有的提交都不会影响到其他人。


尽量可能的降低耦合性就是git版本控制工具的核心思想。每个人都可以在自己的分支尽情操作,直到自己的分配的功能开发完毕。 这个时候就需要,将自己新增的功能回归到dev分支上,与团队其他的成员所开发的功能进行合并。

这个时候,就可以发起合并请求(merge request)


一些特殊需求与操作

线上紧急bug处理,快速发版 一个迭代开始的时候,我们往往相对于上一个迭代修改了很多代码。这个时候,由于开发时间与上线的速度问题,我们很难对上一个线上版本存在的bug进行快速修复。当然,如果出现p0级的bug,我们不得不进行快速修复上线的时候,我们之前设计的分之模型就比较有用了。

如下图所示


因为master分之与线上的代码保持了一直,我们希望临时性处理一些问题,我们就从master分之临时性的拉出一个fix bug分之。 将正在开发的分之切换到fix bug分之,快速修复bug上线。然后在切换到自己的dev_xx分之进行迭代开发,做到的环境的快速切换。

多分支切换,本地修改暂存

使用git的时候,我们往往使用branch解决任务切换问题,例如,我们往往会建一个自己的分支去修改和调试代码, 如果别人或者自己发现原有的分支上有个不得不修改的bug,我们往往会把完成一半的代码 commit提交到本地仓库,然后切换分支去修改bug,改好之后再切换回来。这样的话往往log上会有大量不必要的记录。

其实如果我们不想提交完成一半或者不完善的代码,但是却不得不去修改一个紧急Bug,那么使用’git stash’就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中。

usage: git stash list 列举出自己的暂存代码

git stash show 查看stash的详情

git stash drop 丢弃stash

git stash ( pop | apply ) 弹出栈中的stash 

git stash branch stash某个分之 

git stash [save [--patch] 压入栈stash

git stash clear 清空

操作流程

  • Git 的安装
  • 创建仓库
简易的命令行入门教程:


Git 全局设置:

 git config --global user.name "superworker"
 git config --global user.email "huyanliang@inpingo.com"
创建 git 仓库:

 mkdir api
  cd api
  git init
  touch README.md
  git add README.md
  git commit -m "first commit"
  git remote add origin https://git.oschina.net/superworker/api.git
  git push -u origin master
已有项目?

 cd existing_git_repo
  git remote add origin https://git.oschina.net/superworker/api.git
  git push -u origin master

公有库开发过程

  • fork仓库
  • 通常fork公有库的Master分支作为当前的开发分支
  • 提交pr
  • pr审核
  • pr合并
-------------------------------------------------------------------------------------------------\
fork仓库 | 提交pr | pr审核 | pr合并
    1.克隆仓库
 git clone https://git.oschina.net/superworker/api.git
    2.切换到dev分支
 git checkout dev
    3.创建分支
 git checkout -b [new-feature]
    4.提交分支
 git push origin [new-feature]
    5.本地分支合并 ``` 查看分支
 git branch
   6.创建分支
 git branch <name>
   7.切换分支
 git checkout <name>
   8.创建+切换分支
 git checkout -b <name>
   9.合并某分支到当前分支
 git merge <name>
  10.删除分支
 git branch -d <name>






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值