GITHUB的若干操作
GITHUB的若干操作
github又名代码仓库,是git的远程和线上延申,Git是一个分布式版本控制系统,用于跟踪文件的更改和协助多人合作开发。它由Linus Torvalds为更好地管理Linux内核开发而设计。git最原始是为Linux系统设计而生,不过后面也出现了git for windows.git技术对于代码文件管理和团队协作十分重要,我深切的体会就是在打机器人比赛的时候经常患得患失的要去把keil工程文件在修改之前压缩保存,防止后面改错,一次两次还行,到了后面就十分的麻烦,版本管理上几乎完全是混乱的。git技术就是为了解决版本管理和团队协作而生的。
Git的基本概念
-
仓库(Repository):包含所有版本记录的文件夹,是Git管理项目的核心。
-
提交(Commit):对文件更改的记录。每次提交都会生成一个唯一的ID(哈希值),用于标识该更改。
-
分支(Branch):从主开发线上分离出来的一个独立线路,可以用来尝试新功能或修复而不影响主分支。
-
合并(Merge):将两个或多个分支的更改合并到一起的操作。
-
冲突(Conflict):当两个分支修改了同一个文件的同一部分,且Git无法自动合并这些更改时发生的情况。
-
远程(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 revert
或git reset
撤销提交。 -
存储工作:使用
git stash
暂存和恢复未完成的工作。
git中很重要的技术就是分支管理,分支管理就可以很好的解决了代码尝试性修改的问题,可以新开一个branch,在branch中进行修改并测试,且最终是不会影响到主master分支的。
github与Github_desktop
GitHub是一个基于web的服务平台,主要用于版本控制和协作,允许开发者在云端托管和管理代码,同时提供了一系列协作特性,如任务管理、bug跟踪、功能请求和wikis。以下是GitHub的详细介绍:
-
仓库(Repository):
-
仓库是GitHub的核心单元,用于存储项目的所有文件和提交历史。
-
每个仓库都可以独立管理,包括代码、文档、数据集等。
-
-
分支(Branch):
-
分支允许用户在不影响主代码库的情况下进行代码更改。
-
主分支通常是
main
或master
,而其他分支用于开发新功能或修复。
-
-
提交(Commit):
-
提交是对代码库中更改的记录,每个提交都有一个唯一的ID和描述性消息。
-
-
拉取请求(Pull Request):
-
拉取请求是GitHub上协作的核心功能,允许用户贡献代码到其他仓库或合并分支。
-
它通常包括代码审查和讨论。
-
-
问题(Issue):
-
问题用于跟踪bug、功能请求和其他任务。
-
用户可以讨论问题,并通过拉取请求关联提交来解决问题。
-
-
贡献者(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和本地计算机之间安全地传输代码,而不需要每次推送到仓库时都输入用户名和密码。