当前位置: 首页 > article >正文

GITHUB的若干操作

GITHUB的若干操作

github又名代码仓库,是git的远程和线上延申,Git是一个分布式版本控制系统,用于跟踪文件的更改和协助多人合作开发。它由Linus Torvalds为更好地管理Linux内核开发而设计。git最原始是为Linux系统设计而生,不过后面也出现了git for windows.git技术对于代码文件管理和团队协作十分重要,我深切的体会就是在打机器人比赛的时候经常患得患失的要去把keil工程文件在修改之前压缩保存,防止后面改错,一次两次还行,到了后面就十分的麻烦,版本管理上几乎完全是混乱的。git技术就是为了解决版本管理和团队协作而生的。

Git的基本概念

  1. 仓库(Repository):包含所有版本记录的文件夹,是Git管理项目的核心。

  2. 提交(Commit):对文件更改的记录。每次提交都会生成一个唯一的ID(哈希值),用于标识该更改。

  3. 分支(Branch):从主开发线上分离出来的一个独立线路,可以用来尝试新功能或修复而不影响主分支。

  4. 合并(Merge):将两个或多个分支的更改合并到一起的操作。

  5. 冲突(Conflict):当两个分支修改了同一个文件的同一部分,且Git无法自动合并这些更改时发生的情况。

  6. 远程(Remote):指托管在网络上其他位置的Git仓库,通常用于协作。

由于现实中git技术多用于Linux系统,在win上主要采用的是github desktop来进行相应的图形化操作,这里简要提及在linux的git若干操作。

  • git init:初始化一个新的Git仓库。

  • git clone [url]:克隆远程仓库到本地。

  • git status:查看当前仓库的状态。

  • git add [file]:将文件更改添加到暂存区。

  • git commit -m "message":创建一个新的提交。

  • git branch:列出所有分支。

  • git checkout [branch]:切换分支。

  • git merge [branch]:将指定分支合并到当前分支。

  • git push [remote] [branch]:推送分支到远程仓库。

  • git pull [remote] [branch]:从远程仓库拉取分支并合并。

git的高级功能如下:

  • 分支管理:创建、删除、合并分支。

  • 标签管理:标记发布版本。

  • 远程协作:与多人合作开发。

  • 撤销更改:使用git revertgit reset撤销提交。

  • 存储工作:使用git stash暂存和恢复未完成的工作。

git中很重要的技术就是分支管理,分支管理就可以很好的解决了代码尝试性修改的问题,可以新开一个branch,在branch中进行修改并测试,且最终是不会影响到主master分支的。

github与Github_desktop

GitHub是一个基于web的服务平台,主要用于版本控制和协作,允许开发者在云端托管和管理代码,同时提供了一系列协作特性,如任务管理、bug跟踪、功能请求和wikis。以下是GitHub的详细介绍:

  1. 仓库(Repository)

    • 仓库是GitHub的核心单元,用于存储项目的所有文件和提交历史。

    • 每个仓库都可以独立管理,包括代码、文档、数据集等。

  2. 分支(Branch)

    • 分支允许用户在不影响主代码库的情况下进行代码更改。

    • 主分支通常是mainmaster,而其他分支用于开发新功能或修复。

  3. 提交(Commit)

    • 提交是对代码库中更改的记录,每个提交都有一个唯一的ID和描述性消息。

  4. 拉取请求(Pull Request)

    • 拉取请求是GitHub上协作的核心功能,允许用户贡献代码到其他仓库或合并分支。

    • 它通常包括代码审查和讨论。

  5. 问题(Issue)

    • 问题用于跟踪bug、功能请求和其他任务。

    • 用户可以讨论问题,并通过拉取请求关联提交来解决问题。

  6. 贡献者(Contributors)

    • 贡献者是参与项目的人,可以是仓库的拥有者、协作者或通过拉取请求贡献代码的外部开发者。

以我的一个个人仓库举例来说,其界面有code,issues,pull requests(其余用户想添加到该仓库需要获得管理员的许可),wiki(用户交流)等。点击Branches按钮后可以新建分支,测试性修改后的代码可以提交到新建的分支中去管理。而在其中还有tag按钮,tag是新建标签的功能,tag和branch的区别如下:

  • Branch(分支)

    • 用于开发、实验和功能分离。分支允许开发者在不影响主代码库的情况下进行代码修改。

    • 通常是临时的,可能会经历多次提交和合并。

  • Tag(标签)

    • 用于标记发布版本或重要的代码快照。标签代表了一个特定时间点的代码状态。

    • 通常是一成不变的,一旦创建,就指向一个固定的提交。

tag有些类似于发行版本,实际上在github的tag操作也确实如此:

在其中需要填写发行版本的各种信息和名称以及特定的标签(tag).

github说到底是一个远程线上仓库,往往是不便于直接在上面进行修改的,因此就有了github desktop(win系统特有的),在linux中是通过git命令行来操作的,

在github_desktop中可以把Git上的仓库clone到本地,也可以在本地直接新建一个仓库。为了方便阅览可以在vscode中进行阅览并修改(如果是代码文件的话)。在修改完成后,可以提交到远程仓库并同步更新(默认选择的提交分支是main分支)。

此外还需要补充一下,在github中还有fork操作,在GitHub中,"Fork"操作是指用户在自己的账户下创建另一个用户或组织仓库的副本。这个功能允许开发者在不直接修改原始项目的情况下,对项目进行个性化的修改、添加新功能或修复问题。fork操作在用户想要用别人的项目的时候十分便捷。

在github界面中还支持远程SSH操作。

在GitHub中,SSH(Secure Shell)是一种安全网络协议,用于在计算机之间加密传输数据。SSH操作通常用于在GitHub和本地计算机之间安全地传输代码,而不需要每次推送到仓库时都输入用户名和密码。


http://www.kler.cn/a/553802.html

相关文章:

  • 【LeetCode Hot100 链表(上)】相交链表、反转链表、回文链表、环形链表、合并两个有序链表、两数相加
  • 学习总结2.19
  • Flutter基础入门
  • HarmonyOS全栈开发指南:从入门到精通,构建万物智联的未来生态(三)
  • INA219电流、电压、功率测量芯片应用
  • 使用(xshell+xftp)将前端项目部署到服务器
  • LeetCode 0624.数组列表中的最大距离:只关心最小最大值
  • 智慧场馆运营系统
  • jenkins自动发版vue前端笔记
  • 2021年下半年软件设计师下午试卷题型和考点总结(附真题及答案解析)
  • JavaScript数组-遍历数组
  • 手机控制电脑远程关机
  • sklearn.ConfusionMatrixDisplay可视化混淆矩阵
  • Golang GORM系列:GORM无缝集成web框架
  • Vue.js 定义 Vue CLI 配置
  • C# ConcurrentQueue 使用详解
  • Python数据可视化简介
  • 支持 30+ AI 大模型!一站式聚合 GPT-4、Claude、DeepSeek、通义千问、文心一言等全球顶级模型!
  • 面试基础---如何设计一个高并发的抢购系统(电商)
  • Matlab写入点云数据到Rosbag