Git - 多人协作流程

Git - 多人协作流程

目录

多人协作流程

分支推送协作

分支拉取协作

删除远程分支


多人协作流程

1. 开发者A:在远程仓库中有一个testgit1仓库,点击管理 -> 左侧仓库成员管理  -> 申请列表  -> 邀请用户,将连接复制,发送给邀请的用户。

2. 开发者B:接受邀约后,可在仓库中看到开发者A的仓库。

3. 开发者A:

  • 点击管理 -> 左侧仓库成员管理中查看到仓库中的其他成员,并赋予身份(例如:管理者、开发者、测试者等),不同的身份有不同的管理权限。
  • 拉取远程仓库到本地仓库,使两个仓库内容基本一致。
  • 起项目框架,写内容,经本地仓库推送到远程仓库中。

4. 开发者B:

  • 开发者B不能在testgit1仓库本仓库中进行操作(重点),如果在这个仓库中操作,就使修改了开发者A的库;
  • 点击Fork,选中自己,点击确定
  • 点击头像 -> 个人主页 -> 仓库,会发现变成了两个库,一个是开发者A的库(开发者A/testgit1),一个是开发者B的库(开发者B/testgit1),应该在生成的开发者B的这个库中操作。
  • 将这个库克隆下来,然后进行添加用户、邮箱,和远程仓库连接,写代码文件。
  • vi B.txt,然后提交,并推送到远程仓库(若有冲突,将远程仓库拉取到本地仓库,并解决冲突)。
  • 要同步给开发者A,在唱K中,选中 Pull Requests -> 新建Pull Request

5. 开发者A:

  • 开发者A在 【开发者A/testgit1】 这个库中,并不能看到开发者B提交的内容。
  • Pull Requests会接收到请求 -> 点进去,进行审核 -> 没问题,点击审核通过,测试通过
  • 点击合并分支,然后点击Pull RequestPull Request
  • 此时,就能看到开发者B添加的内容

6. 开发者C:

  • 与开发者B一样进入开发者A的仓库后,点击Fork,生成一个自己的库(开发者C/testgit1)
  • 进入【开发者C/testgit1】仓库,点击仓库后的刷新,刚刚开发者A操作合并开发者B的内容,这里会显示。

到处,多人协同操作流程完毕。


分支推送协作

在testgit1仓库上操作:

1. 创建dev分支

// 创建分支并切换到分支 git checkout -b dev

2. 推送分支

  • git push无法把分支dev推送到远程仓库
  • 方法一:使用下面的命令推送分支
    • 同时本地也关联了远程分支dev
  • 方法二:使用带 -u 参数的命令
// 方法二 git push -u origin dev
git branch -av
// 方法一 git push --set-upstream origin dev

分支拉取协作

在testgit01仓库上操作:

  • 发现有远程分支,但是没有本地的dev分支
  • 这时可以创建本地的dev分支,此刻也可以修改本地分支的名字
  • 创建分支并且切换到dev分支上,而且该分支和远程分支dev关联
  • 方法一:使用 -b 参数
  • 方式二:使用 --track 参数
// git checkout --track 远程仓库名/远程分支名 git checkout --track origin/dev2
// git checkout -b 本地分支名 远程仓库名/远程分支名 git checkout -b dev origin/dev

删除远程分支

在testgit01仓库上操作:

1. 删除本地仓库分支dev2

  • 删除之后,会发现远程的分支dev2关联还在
git branch -d dev2

2. 删除远程分支关联

git push origin --delete dev2

在testgit1仓库上操作:

3. 通过另一个用户来查看本地对应的远程分支的时候可以看到远程分支的变化

git remote show origin

4. 查看origin远程对于的分支

git remote prune origin

Read more

【C++】一篇文章了解C++的异常处理机制

【C++】一篇文章了解C++的异常处理机制

异常 基本异常处理关键字 在 C++ 中,异常处理是一种机制,用于处理程序在运行时发生的异常情况。异常是指程序执行期间发生 的意外事件,比如除以零、访问无效的内存地址等。通过使用异常处理机制,可以使程序更健壮,并能 够处理这些意外情况,避免程序崩溃或产生不可预测的结果。 在 C++ 中,异常处理通常包括以下关键词和概念: * try-catch 块: try 块用于标识可能会引发异常的代码块,而 catch 块用于捕获和处理异常。 catch 块可以针对不同类型的异常进行处理。 * throw 关键词: throw 用于在程序中显式抛出异常。当发生异常情况时,可以使用 throw 来抛出 一个特定的异常类型。 * 异常类型:异常可以是任何类型的数据,但通常是标准库中的异常类或自定义的异常类。标准库提 供了一些常见的异常类,如 std::exception 及其派生类,用于表示不同类型的异常情况。 核心语法: 关键字作用关键注意点throw中断当前代码流程,

By Ne0inhk
【C++BFS算法】909. 蛇梯棋|2019

【C++BFS算法】909. 蛇梯棋|2019

本文涉及知识点 C++BFS算法 LeetCode909. 蛇梯棋 给你一个大小为 n x n 的整数矩阵 board ,方格按从 1 到 n2 编号,编号遵循 转行交替方式 ,从左下角开始 (即,从 board[n - 1][0] 开始)的每一行改变方向。 你一开始位于棋盘上的方格 1。每一回合,玩家需要从当前方格 curr 开始出发,按下述要求前进: 选定目标方格 next ,目标方格的编号在范围 [curr + 1, min(curr + 6, n2)] 。 该选择模拟了掷 六面体骰子 的情景,无论棋盘大小如何,玩家最多只能有 6

By Ne0inhk
Rust赋能Android蓝牙协议栈:从C++到安全高效的重构之路

Rust赋能Android蓝牙协议栈:从C++到安全高效的重构之路

在移动设备生态中,蓝牙协议栈是连接物理世界与数字世界的关键桥梁,从无线耳机、智能手环到车载系统,其稳定性、安全性与效率直接决定用户体验。长期以来,Android蓝牙协议栈核心模块基于C++开发,凭借接近硬件的性能优势支撑了数十亿设备的运行。但随着物联网设备爆发式增长、蓝牙5.3/5.4等新协议落地,C++固有的内存安全缺陷与并发管理难题愈发凸显。2021年起,Google开始在Android蓝牙协议栈中引入Rust重构核心模块,这一技术选型并非偶然,而是工程实践中安全与效率平衡的必然结果。 目录 一、Android蓝牙协议栈的C++之困 1.1 内存安全漏洞:蓝牙模块的阿喀琉斯之踵 1.2 并发管理复杂:多设备连接下的稳定性难题 1.3 代码可维护性下降:遗产代码的演进瓶颈 二、Rust:破解困局的关键特性赋能 2.1 所有权模型 2.2 并发安全:无数据竞争的天生优势 2.3 零成本抽象与可维护性:

By Ne0inhk
C++ 多态详解:从概念本质、语法规则到底层实现,结合实战代码的全方位指南

C++ 多态详解:从概念本质、语法规则到底层实现,结合实战代码的全方位指南

🔥草莓熊Lotso:个人主页 ❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受! 🎬 博主简介: 文章目录 * 前言: * 一. 多态的概念:从“多种形态说起” * 1.1 多态的概念解析 * 1.2 生活中的多态示例 * 二. 多态的构成条件和核心语法 * 2.1 条件 1:虚函数的定义 * 2.2 条件 2:虚函数的重写(覆盖) * 2.3 多态场景的一个笔试选择题(重要): * 三、虚函数重写的特殊情况 * 3.1 协变(了解) * 3.2 析构函数的重写(重点)

By Ne0inhk