GitHub和Git多人协作开发

本文详细介绍GitHub上三种多人协作开发方式:Fork方式、组织和合作者模式,以及多人开发的Git流程,包括推送分支、抓取分支等关键操作,帮助团队高效协作。

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

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow

                       

转载请标明出处:http://blog.youkuaiyun.com/xx326664162/article/details/52913603    文章出自:薛瑄的博客

你也可以查看我的其他同类文章,也会让你有一定的收货

GitHub 多人协作开发 三种方式:

转载:https://gist.github.com/belm/6989341

一、Fork 方式  网上介绍比较多的方式(比较大型的开源项目,比如cocos2d-x)

开发者 fork 自己生成一个独立的分支,跟主分支完全独立,pull代码后,项目维护者可根据代码质量决定是否merge代码
此方式网上方法比较多,这里不详细描述

有两种常用的方法在GitHub上建立团队合作:

二、组织

组织的所有者可以针对不同的代码仓库建立不同访问权限的团队。

Accounts Settings => Organizations =>Create new Organizations 新建一个组织  然后添加项目成员,根据提示设置完毕即可。
新建一个Repository  新建完毕后  进入Repository的Settings =>Collaborators 在Teams下面点击刚创建的组织 比如eveloper-51/owners
里面就可以添加或者remove组织成员

三、合作者 –

代码仓库的所有者可以为单个仓库增加具备只读或者读写权限的协作者。

合作者方式比较实用,也很方便,新建一个Repository,完毕之后,进入Repository的Settings,然后在Manage Collaborators里就可以管理合作者了。
其他合作者,实用 ssh-keygen -C “YourEmail@example.com” (这里的email使用github账号)生成公钥和私钥,在Accounts Settings=》SSH keys 将公钥上传上去。
上传完成后,可使用Tower(Mac下Git管理工具)clone remote Repository  使用SSH方式登录(这里的私钥使用刚才生成的) 这样,其他合作者就可以正常的PUSH代码了。

多人开发的 Git 流程

转载:http://www.cnblogs.com/LvLoveYuForever/p/5525100.html

多人协作时,大家都克隆项目到本地git clone https://github.com/LvLoveYuForever/gitskill.git

,大家都会往master和dev分支上推送各自的修改,默认情况下只能看到本地的master分支,可以用git branch命令看看:

LV@LV-PC MINGW32 /c/gitskill (master)$ git branch* master
  
  
  • 1
  • 2
  • 3

当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且你的远程仓库的默认名称是origin

查看远程库的信息,用git remote

LV@LV-PC MINGW32 /c/gitskill (dev)$ git remoteorigin
  
  
  • 1
  • 2
  • 3

或者,用git remote -v 查看更详细的信息:

LV@LV-PC MINGW32 /c/gitskill (dev)$ git remote -vorigin https://github.com/LvLoveYuForever/gitskill.git (fetch)origin https://github.com/LvLoveYuForever/gitskill.git (push)
  
  
  • 1
  • 2
  • 3
  • 4

上面显示了可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址

2  、推送分支

就是把该分支上的所有本地提交推送到远程库,推送时,要指定本地分支与远程分支的对应关系,这样,Git就会把该分支推送到远程库对应的远程分支上:

LV@LV-PC MINGW32 /c/gitskill (dev)$ git push origin masterUsername for 'https://github.com': lvloveyuforever@gmail.comPassword for 'https://lvloveyuforever@gmail.com@github.com':Counting objects: 4, done.Delta compression using up to 4 threads.Compressing objects: 100% (4/4), done.Writing objects: 100% (4/4), 406 bytes | 0 bytes/s, done.Total 4 (delta 2), reused 0 (delta 0)To https://github.com/LvLoveYuForever/gitskill.git8e64728..dbfc0ee master -> master
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

如果要推送其它的分支,比如dev,就改成:

LV@LV-PC MINGW32 /c/gitskill (dev)$ git push origin devUsername for 'https://github.com': lvloveyuforever@gmail.comPassword for 'https://lvloveyuforever@gmail.com@github.com':Total 0 (delta 0), reused 0 (delta 0)To https://github.com/LvLoveYuForever/gitskill.git* [new branch] dev -> dev
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

总之,在Git中,分支完全可以在本地自己藏着玩,是否推送,看你的心情而定了

3、抓取分支:

现在,你的小伙伴要在dev分支上开发,就必须创建远程origin的dev分支到本地,代码命令:

$ git checkout -b dev origin/dev
  
  
  • 1

他就可以在dev上继续修改,然后,把修改的内容push到远程origin的dev分支

$ git push origin dev
  
  
  • 1

你的小伙伴已经向origin/dev分支上推送了他的提交,而碰巧你也对文件做了修改,并试图推送

这样会推送失败,因为你试图提交的跟你小伙伴推送的提交有冲突,解决办法很简单。

Git提示告诉我们,先用git pull把最新的提交从origin/dev上抓下来,然后在本地合并,解决冲突后,再推送:

$ git pull
  
  
  • 1

如果 git pull失败了,原因是没有指定本地的dev和远程origin/dev上的链接

$ git branch --set-upstream dev origin/dev 再pull

$ git pull 这样git pull是成功的,但是合并出现冲突,需要手动解决,解决的方法和分支管理中的解决冲突完全一样,解决后,提交,再push.


哪些分支需要推送到远程仓库呢?

  • master分支是主分支,因此时刻与远程同步;
  • dev分支是开发分支,团队的所有成员需要在上面工作,所以也需要与远程同步;
  • bug分支只用于本地修复bug用的,就没有必要推送到远程了,除非你的老板要看看你每周到底修复了几个bug;
  • feature分支是否推送到远程,取决你是否和小伙伴们在上面开发;

小结:

多人协作的工作过程是这样的:

  1. 试图用git push origin branch-name推送分支到远程仓库;
  2. 如果推送失败,则因为远程分支比你本地的更新,需要先用git pull试图拉取并合并;
  3. 如果合并有冲突,则解决冲突,并在本地提交;
  4. 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功。

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令 git branch –set-upsream branch-name origin/branch-name

           

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow

### Git多人协作开发的最佳实践 在多人协作开发环境中,Git 是一种强大的版本控制工具,可以帮助团队高效地管理维护代码库。为了确保项目的顺利推进并减少冲突的可能性,以下是一些关于 Git 多人协作开发的最佳实践: #### 1. 使用分支策略 采用清晰的分支策略是多人协作的核心之一。常见的分支模型有 **Git Flow** **GitHub Flow**。 - **Git Flow**: 这种模式通常用于较复杂的项目,涉及多个长期存在的分支,如 `main`、`develop`、功能分支 (`feature/*`)、发布分支 (`release/*`) 修复分支 (`hotfix/*`)。 - **GitHub Flow**: 更简单灵活,适用于持续交付场景。主要依赖于 `main` 分支短期的功能分支 (`feature/*`) 或补丁分支 (`patch/*`)。 通过遵循这些最佳实践,不仅可以提高代码质量,还可以增强对 `git add` 的理解,从而更自信地处理变更[^1]。 #### 2. 配置全局用户名邮箱 每位开发者都应该设置自己的全局用户名邮箱地址,以便每次提交都可以被正确标记归属信息: ```bash git config --global user.name "Your Name" git config --global user.email "your-email@example.com" ``` #### 3. 提交消息规范 编写清晰且有意义的提交消息对于后续审查调试至关重要。建议按照如下格式撰写提交消息: - 主题行(不超过50字符) - 空白行分隔主题与正文描述 - 正文部分具体说明改动原因及其影响 如果未指定编辑器来修改提交信息,则可以通过环境变量 `GIT_EDITOR=` 来触发默认行为[^3]。 #### 4. 定期同步远程仓库 保持本地副本始终最新非常重要。这包括定期拉取最新的更改以及解决可能产生的合并冲突: ```bash # 更新前先保存当前工作状态 git stash save 'message' # 获取上游更新并与之合并 git pull origin main # 应用之前存储的状态 git stash pop ``` #### 5. 制定代码评审机制 引入 Pull Request (PR) 流程可以让其他成员参与审核新入的内容。这样不仅有助于发现潜在错误,也能促进知识共享技术提升。 #### 6. 自动化测试集成 尽可能多地利用 CI/CD 工具自动运行单元测试其他验证过程,在早期阶段捕捉缺陷。 --- ### 示例脚本:自动化创建特性分支 下面是一个简单的 Bash 脚本来帮助快速启动一个新的特性关联至 Jira ticket ID: ```bash #!/bin/bash read -p "Enter the feature name: " FEATURE_NAME JIRA_TICKET=$(echo "$FEATURE_NAME" | cut -d'-' -f1) if [[ $JIRA_TICKET =~ ^[A-Z]+-[0-9]+$ ]]; then BRANCH="feature/${JIRA_TICKET}-${FEATURE_NAME}" echo "Creating branch ${BRANCH}..." git checkout -b "${BRANCH}" develop else echo "Invalid input, please use format like PROJECTNAME-XXXX-feature-name." fi ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值