<git>如何快速上手并高效协同

2023-08-06 21:40:08

在这里插入图片描述

git是什么?

Git是一种分布式版本控制系统,用于跟踪计算机文件的变化和协调多个人之间的工作。它最初由Linus Torvalds于2005年创建,旨在管理Linux内核的开发。

Git可以在本地计算机上存储完整的版本历史记录,并允许用户在不同的分支上进行开发和合并。它还提供了许多工具和命令,用于管理代码库、协作开发、解决冲突等。

Git已成为现代软件开发中最流行的版本控制系统之一。

git常用命令

在这里插入图片描述

列举一些常用的Git命令

  1. 初始化仓库git init - 在当前目录下创建一个新的Git仓库。

  2. 克隆远程仓库git clone <repository-url> - 克隆远程仓库到本地。

  3. 添加文件到暂存区git add <file> - 将文件或目录添加到暂存区,准备提交。

  4. 提交更改git commit -m "<commit-message>" - 提交所有已暂存的更改,并附上相应的提交消息。

  5. 查看状态git status - 查看当前工作树和暂存区中文件的状态。

  6. 查看日志记录: git log [--options] [<path>] - 查看项目历史记录。可以使用选项来控制显示内容、格式等参数,并可选择指定特定路径进行过滤。

  7. 推送到远程分支git push origin <branch-name>- 将本地分支推送(上传)到远程分支上去.

  8. 拉取最新代码: git pull origin <branch-name>- 拉取并合并远程分支最新修改到本地分支.

  9. 切换分支: git checkout <branch-name>- 切换至指定名称的分支.

  10. 创建与合并分支:
    * 创建新特性/修复bug 分知识: git branch <branch-name>
    * 切换到新分支: git checkout <branch-name>
    * 合并指定分支到当前分支: git merge <branch-name>

  11. 解决冲突:当合并或拉取操作引发冲突时,需要手动解决。打开有冲突的文件,在标记处进行修改,并提交更改。

  12. 撤销更改

    • 撤销暂存的更改: git restore --staged <file>
    • 撤销对文件的修改(未暂存):git restore <file>
  13. 重命名与删除文件:

    • 文件重命名: git mv <old-filename> <new-filename>
    • 删除文件: git rm <filename>
  14. 远程仓库管理:

    • 添加远程仓库: git remote add origin <repository-url>
    • 查看已配置远程仓库列表 : git remote -v
    • 移除远程仓库 : git remote remove origin

git第三方可视化工具

第三方可视化工具主要用于简化某些git命令行的操作,并以一种直观的方式表示出分支变化。

SourceTree

在这里插入图片描述

SourceTree是一款流行的Git图形化界面客户端,它提供了可视化和直观的方式来管理和协同开发Git仓库。以下是一个简单的SourceTree使用教程:

  1. 下载并安装:在Atlassian官网上下载适用于您操作系统的SourceTree版本,并按照说明进行安装。
https://www.sourcetreeapp.com/
  1. 添加远程仓库:打开SourceTree后,点击"Clone"按钮或选择菜单中的"File -> Clone/New"。在弹出窗口中输入远程仓库URL、目标路径和名称,然后点击"Clone"按钮。

  2. 创建分支:从主分支(如mastermain)切换到新建特性分支。可以通过双击主分支,在弹出窗口中输入新分支名称并选择创建类型来完成操作。

  3. 进行修改与提交:对项目文件进行修改后,在左侧导航栏选中待提交文件并填写相应描述信息。然后点击工具栏上方的“Commit”按钮来提交更改。

  4. 推送与拉取:当你想分享自己所做修改时,点击工具栏上方的“Push”按钮将本地更改推送到远程仓库。如果其他人有更新,则可以通过点击“Pull”按钮获取最新代码。

  5. 解决冲突:如果多个人同时修改了同一部分代码,可能会产生冲突。在SourceTree中,可以通过右键点击冲突文件并选择“Resolve Conflicts”来解决冲突。

  6. 合并分支:当特性分支开发完成且经过测试后,可以将其合并回主分支。选中主分支,然后点击工具栏上的"Merge"按钮,并选择要合并的特性分支。

  7. 查看历史记录:使用SourceTree的提交历史视图可以查看仓库的完整历史记录和每次提交所做的更改。

git协同的方式方法

在这里插入图片描述

  1. 创建共享仓库:在代码托管平台(如GitHub、GitLab等)上创建一个中央仓库,并邀请团队成员加入。
  2. 分支管理:每个团队成员都应该基于主分支(通常是master或main)创建自己的特性分支(个人分支)来进行开发工作。这样可以保持各自的开发独立性,避免冲突。
  3. 及时更新:在本地进行开发时,经常提交代码到本地仓库。这样做有助于记录变化并确保不会丢失任何本地的变化。
  4. 推送与拉取:当某个功能或任务完成后,在特性分支上执行 git push 命令将修改推送到远程仓库。其他团队成员可以通过执行 git pull 命令来获取最新更新。这里要求及时进行pull更新,保持本地分支与线上分支的一致。
  5. Code Review:对于重要的变更,建议使用Code Review流程。通过Pull Request机制,在合并特性分支到主分支之前,让其他团队成员审查代码、提出意见和改进建议。
  6. 解决冲突:如果两个或多个人同时修改了相同文件的相同部分,则会发生冲突。在这种情况下,需要手动解决冲突并提交更改。
  7. 合并与发布:经过Code Review和测试后,将特性分支合并到主分支,并进行发布或部署。
  8. 持续集成/持续交付(CI/CD):使用CI/CD工具(如Jenkins、Travis CI等)来自动化构建、测试和部署流程。这有助于确保团队成员的代码变更能够正常运行且不会破坏现有功能。
更多推荐

kafka介绍

1.kafka概述消息中间件对比特性ActiveMQRabbitMQRocketMQKafka开发语言javaerlangjavascala单机吞吐量万级万级10万级100万级时效性msusmsms级以内可用性高(主从)高(主从)非常高(分布式)非常高(分布式)功能特性成熟的产品、较全的文档、各种协议支持好并发能力强、

SkyWalking快速上手(二)——架构剖析1

文章目录介绍架构概述一、Agent组件介绍Agent的配置配置参数详解service_namesample_n_per_3_secsnamespacecollector.backend_serviceAgent的工作原理二、Collector组件什么是Collector组件?Collector组件的配置配置Collec

List<HashMap<String,String>>实现自定义字符串排序(key排序、Value排序)

系列文章目录SpringBoot+Vue3实现登录验证码功能Java实现发送邮件(定时自动发送邮件)换个角度使用Redis去解决跨域存取Session问题Redis缓存穿透、击穿、雪崩问题及解决方法SpringCache的使用–快速上手篇更多该系列文章请查看我的主页哦文章目录系列文章目录前言一、根据Key值排序1.1.

【Spring Cloud系列】Feign详解与实战

Feign详解与实战文章目录Feign详解与实战一、概述二、什么是Feign三、Feign特性四、Feign简单使用3.1Feign使用步骤3.2Feign具体使用1.引入依赖2.启动类上添加注解3.编写FeignClient接口五、使用Feign发起http请求5.1Maven导入Feign配置,并集成Jackson

全球性区块链服务网络(BSN)机制体系、关键技术和应用项目科技成果鉴定会在北京举行

原标题:《全球性区块链服务网络(BSN)机制体系、关键技术和应用项目科技成果鉴定会在北京举行》2023年9月17日,“全球性区块链服务网络(BSN)机制体系、关键技术和应用”科技成果鉴定会在北京举行。鉴定委员会由北京交通大学移动专用网络国家工程研究中心主任、中国工程院院士张宏科,中国航天科技集团五院研究员、中国科学院院

Android Kotlin 协程详解

前言关于Kotlin基础和高阶函数又不熟悉的可以先参考文章:AndroidKotlin基础详解_袁震的博客-CSDN博客AndroidKotlin高阶详解_袁震的博客-CSDN博客什么是协程?要理解协程,就要将它和线程联系起来理解。线程是什么?我想大家都清楚,而协程,它比线程更加轻量级,一个线程上面可以有多个协程。如果

无人车开源软件架构

参考视频:Apollo自动驾驶入门课程开源软件架构开放式软件层分为三个子层:实时操作系统、运行时框架和应用程序模块层实时操作系统(RTOS)可确保在给定时间内完成特定任务,“实时”是指无人车的操作系统能够及时进行计算,分析并执行相应的操作。以上是在汽车传感器收集到外界数据后的短时间内完成。假设无人车的传感器检测到车辆前

requests模块高级用法练习

文章目录模拟浏览器指纹发送get请求发送post请求文件上传服务器超时模拟浏览器指纹打开http://10.9.75.164/php/functions/setcookie.php网页,找到请求头的UA字段,这段信息是浏览器的指纹(包括当前系统、浏览器名称和版本):在Python脚本中新建一个headers字段,将该U

【ES6】

ES61ES6简介1.1什么是ES61.2为什么使用ES62ES6的新增语法2.1let2.2const2.3let、const、var的区别2.4解构赋值2.4.1数组解构2.4.2对象解构2.5箭头函数2.6剩余参数3ES6的内置对象扩展3.1Array的扩展方法3.1.1扩展运算符(展开语法)3.1.2构造函数方

华为云云耀云服务器L实例评测|基于华为云云耀云服务器L实例搭建EMQX大规模分布式 MQTT 消息服务器场景体验

文章目录前言一、😄华为云云耀服务器二、😄产品实例创建相关1、🧨开通华为云云耀服务器2、🧨创建华为云云耀服务器实例3、🧨终端登录4、🧨华为云云耀云服务器密码重置三、😄安装开源产品EMQX四、😄开放安全组五、😄访问EMQXDashboard六、😄消息传输建立测试1、🧨客户端连接消息服务器2、🧨客户端

Python数据容器——列表、元组、字符串、集合、字典

作者:Insist--个人主页:insist--个人主页本文专栏:Python专栏专栏介绍:本专栏为免费专栏,并且会持续更新python基础知识,欢迎各位订阅关注。目录一、了解数据容器1.为什么需要数据容器?2.数据容器是什么?二、数据容器—列表(list)1.列表的定义2.列表的特点3.例题三、数据容器—元组(tup

热文推荐