| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> 开发工具-Github -> 正文阅读 |
|
[开发工具]开发工具-Github |
开发工具-Github大名鼎鼎的 GitHub是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。此平台上有大量的开源程序代码,方便使用和学习。对于开发者,也可以使用此平台进行版本控制、多人协作、团队开发等。 github 网站对中国大陆用户来说不太稳定,之前一直想学习使用,但是总无法登录,网上教学更改 host 的方法也没几个靠谱。最近发现能够直接登录了,赶紧学习使用。但是因为其稳定性的原因,代码最好本地有备份。 另外 github 是全英文的,所以最好有一定的英文功底,感觉翻译的不太靠谱……。如果真是英文很烂,可以尝试去 gitee,这个是国内搭建的类似 github 的平台,里面很多项目是 github 上的,或者使用其他大神开发搭建的 github 爬虫站,例如 GitHub中文社区 注册并登录进入官网页面,可以直接输入 E-mail 然后 Sign up for GitHub,根据提示输入相关信息。然后可以登录了,登录后需要接收邮件进行激活,成功激活后进入主页面。 基础使用简单的基础使用,可以搜索、查看其他程序员分享的项目、程序、源码等。简单的查看 GitHub 上的项目,甚至无需注册账号,只要键入地址即可访问。 搜索项目可以在左上角 Search or jump to… 搜索并跳转到感兴趣的项目。在网上应该有很多有趣的或使用的程序,提供 github 的源代码,根据它们提供的 id 或项目名称,在此搜索就能进入项目查看信息或下载源码了。 当然也可以搜索一些关键字,看看其他程序员们都留下了哪些痕迹。例如检索关键字:python技巧 等。 Trending 是官方的趋势列表,可以查看最近 star 上升最快的项目。这个页面可以根据说话语言筛选中文项目,也可以根据编程语言筛选相关项目。 查看如果判断一个项目好不好,简单的可以关注三点:Star、README、Issues。 Star一个项目的星星越多,上涨越快,说明此项目在社区中认同度越高,类似于被点赞。 README可以在 code 一栏中查看,主要是对于该项目的介绍。readme 是 markdown 格式的文本 issuesIssues 在某种程度上来说,像是一种团队协作、头脑风暴的呈现形式。对于下一步需要完善的工序、项目的优化进程都可以在 issue 中找到动态——诸如 feature 的添加、bug 的修复等等。 仓库仓库,顾名思义,就是用来存放我们想放在GitHub上的项目的地方,可以是代码项目,或者是任何其他内容。 创建完账号后,点击进入自己的主页 。这个「repositories」(中文:存放处)指的就是我们俗称的仓库。 通常新建立的账户会有默认的一个仓库 MyGit 。 新建仓库可以在个人主页上新建仓库,也可以在仓库页新建。 新建仓库有几个需要注意的地方:
然后就可以创建仓库了。 设置仓库新建的仓库可以直接使用,但是也可以进一步设置相关信息。进入仓库,点击 Settings,进行设置。
ForkFork 是复刻,在看到别的大神的仓库很棒,则可以使用 Fork 功能复制一个副本到自己的仓库,然后进行修改使用。 使用 git 同步代码使用仓库同步代码需要使用 git 工具 下载和安装linuxlinux 可以使用包管理工具,也可以使用源码进行安装。 使用源码安装,先下载需要的源码包
下载完成后得到的是 xz 压缩包,需要解压
解压完成后,是 tar 归档文件,需要解归档
解归档之后是同名的文件夹,进入文件夹可以使用 configure 修改安装参数,并使用 Makefile 构建和安装。安装过程中可能会报错,需要装一些依赖包,可以使用包管理工具进行安装。需要注意的是,补依赖库时可能会连带安装低版本的 git (由包管理器安装),需要在依赖库安装完成后删除。
windowswindows 版本下载完成后,执行安装程序一路 next 就可以了。 创建本地 git 仓库当安装好 git 软件后,可以在本地将某一个文件夹(项目文件夹)变为 git 的仓库,之后代码放在此文件夹中。 在命令行模式进入需要创建 git 仓库的文件夹,并初始化 git
完成后,就将此文件夹创建成了本地 git 仓库。 管理 git 暂存在仓库里可以存放各种各样的文件,需要使用 git 进行控制的文件需要先添加至 git 暂存
此时如果查看暂存区状态,能看到当前文件夹和暂存区各文件的状态。例如能够看到新文件中有刚添加的文件,另外还有未添加至 git 暂存的文件,已经添加至 git 但是被删除的文件等。
此时就将文件添加至暂存区了 设置 git设置一下 git 才能提交至本地仓库
提交至仓库当更新完暂存区的状态后,可以将暂存区的文件提交至仓库
这样就可以在仓库中创建一个新的版本 查看 git 日志通过日志可以查看日志信息,包括之前提交的提交人员、版本、时间、备注信息等
本地 git 的三大区域git 有三个区域
git 有命令来检查这三个区域的不同:
本地 git 的机制和状态维护工作区就是本地代码文件目录,commit 就是提交到仓库后的(最新)状态。 暂存区是一个快照,初始默认是空的,使用 git status 查看状态会显示快照比对后的结果。 例如上次提交后(此时暂存区保留了一个状态),在工作区删除了某一个文件,暂存区经过快照比对后会标注某文件被删除。这时使用 git add / rm 来将新建的文件提交至暂存区,或将已经删除的文件从暂存区里确认删除(即提交文件被删除的状态)。git add 实际上是对暂存区状态的修改,是根据工作区修改暂存区的状态。例如删除了文件后,再使用 add 添加此文件,会将文件被删除的状态添加到暂存区。 add 会将文件状态添加到暂存区,rm 会将文件从暂存区和工作区同时删除。 也可以根据暂存区的状态修改工作区的文件,例如有文件被删除了,暂存区快照比对后会标识为 deleted,可以通过这个命令恢复此文件。
即通过 git add / rm / checkout 来维护 working tree 和 index file 的状态 暂存区也会和 commit 进行比较,如果有不同的地方,会在 commit 时将不同处进行提交。将暂存区状态修改至我们需要的状态,然后再 commit 进行提交,就会将此时暂存区的文件提交至仓库,形成一个新的版本。 回滚机制如果有需要,可以恢复至仓库中的某一版本
需要注意的是,一旦 reset 到某一版本,此版本即变为HEAD版,在 log 中之后的版本会被丢弃。但是可以使用 git reflog 来查看版本变更信息,这时还可以通过 reset 命令恢复到某一版本。 即通过提交 git commit / reset 来维护 index file(working tree) 和 commit 仓库的状态 分支当从某版本开始,之后的版本可能会有不同,则生成了不同的分支。例如版本4和版本5都是从版本3生成的,但是这两个版本是不同的,这就产生了分支。分支是可以合并的,方便灵活使用和修改。 例如在版本3后继续开发版本4到一定程度后,因为特殊原因需要回滚到版本3进行修改生成版本5,这时可以将版本4保存为一个分支,在完成了版本5后可以和版本4进行合并,继续完成版本4的功能生成版本6。 在 git 中,默认主线名称为 master ,其他分支可以自定义名称。可以查看当前分支
当有需要时,可以创建新分支,例如创建分支 dev。
需注意的是,创建了新分支后,当前版本还处于老分支。如果需要使用新分支则需要切换
切换分支,即重置版本为创建分支时的状态。例如在开发过程中,切回主分支处理 bug
当在某一分支处理完成后,可以合并到主分支。这时需要切换到主分支,然后进行合并(当没有冲突时能够直接合并)
此时使用 git log 可以看到 master 和 bug 分支合并了,该分支的使命暂时也就结束了,可以删除了
此时可以切换到开发分支继续开发,注意此时 dev 分支中的 bug 是没有处理的情况
当开发完成,则需要将 dev 分支合并回 master 分支。需注意的是,因为 dev 分支是没有修复 bug 的,而 master 是修复了 bug 的,这里就是一个冲突。
合并后,因为有冲突,所以 git 会进行提示,同时冲突文件中也会将冲突代码标出。这时需要手动将冲突文件进行更改,然后再次提交为没有冲突的版本。 在开发中,dev 分支应该是以 master 最新的代码进行开发,但是如果 dev 分支不是 master 分支最新的代码,则可以将 master 分支合并到 dev 分支中(只是代码合并,分支并没合并),相当于更新以下 dev 分支的代码。
使用网络托管仓库可以将本地仓库同步至网络的代码托管平台,例如 github、码云(gitee)、扣钉(coding)等。 首先,在选择好的平台上注册账号,并建立好托管仓库。建立好托管仓库后,会有一个仓库链接地址(无论是自己的还是其他人的,都会有),通常包含了用户、仓库名称,且以 .git 结尾。 克隆已有的仓库可以克隆到本地,在需要克隆仓库的文件夹中执行
如果是新建立的托管仓库,克隆到本地后会是一个空仓库,可能里面会有 README.md。使用这个文件夹写项目代码就可以了。注意,使用 clone 克隆有分支的仓库只显示了 master 分支,但是其他分支也是存在的,可以直接切换。 如果已有代码,可以将自己的代码文件复制到此仓库,此时暂存区是空的,添加文件至暂存区,并提交。
创建远端也可以不使用克隆,而是将本地现有的仓库远程提交(连接至服务器仓库)
推送commit 提交的是本地仓库,然后需要将本地仓库同步到服务器上。推送时是需要用户名和密码的,就是在托管平台注册的账户。
推送完成后,可以在服务器的仓库中看到。 需要注意的是,提交的版本必须是新版本,如果本地仓库里的版本比服务器仓库的版本低则会报错,需要先拉取,然后提交,再推送。 拉取如果托管仓库中的代码和本地仓库不同(例如在另一台计算机修改了代码并成功提交推送),可以从托管仓库中拉取
拉取后会有提示,哪个文件有变动。此时本地文件和托管仓库中的文件就会同步了,实际上仓库的版本信息也会同步,有需要也可以重置为历史某一版本。 更新个人使用时,每次有改动都提交并推送,保证远端仓库是最新版本。 变基 rebase当提交次数变多,在一条分支上会产生越来越多的版本记录,可能很多的中间版本记录是无意义的,这时可以通过变基来合并这些无意义的中间版本成为一条记录。
执行完成后,会提示给合并的各版本做标记
需注意,不推荐合并推送到服务器版本仓库的记录,因为可能会引起版本冲突。 关于开发环境,忽略文件由于项目开发中,使用不同的 IDE 会往项目目录中添加不同的文件或配置信息,同时不同的开发环境也会造成代码文件有不同。所以在使用时需要设置忽略文件,将 IDE、环境等添加的和项目代码无关的文件忽略。 在仓库文件夹内创建 .gitignore 文件,在此文件中列出的文件和目录会被 git 忽略。例如
如果是在建立托管仓库时,选择创建忽略文件,则会自动创建该语言开发中应该忽略的各种文件。 团队开发github 可以创建组织,进行团队管理,当有组员上传项目后并通过后,能够自动更新生产环境。 创建组织团队开发需要先创建个组织,使用 New organization,然后填入组织名称(Organization name),选择免费组织,根据提示填写一些信息,然后就可以创建了。 接下来可以添加组织成员,或之后再添加。 创建团队在组织界面,点击 Team 标签,进入团队选单。点击 New Team 创建新团队。 填写一些团队信息,例如团队名称等。然后就可以创建团队,并添加成员。一个团队默认最多5个成员。 创建仓库在组织下创建仓库,和个人仓库创建方法一样。创建好仓库后,在设置里面的 Collaborators & teams 栏中,添加创建的团队,并设置权限。 创建项目团队组长来创建项目(同个人),包括 README.md、环境等基础文件,然后上传项目代码到仓库。其他团队人员克隆此仓库。 拉取、推送组长创建好项目后,团队成员就可以拉取项目文件了。然后各自进行开发,完成后可以将各自开发的文件推送到仓库中。需要注意的是,上传之前需要先拉取更新本地其他文件,然后将需要更新的文件更新推送到仓库中。 当某文件在仓库中的版本比较新,而本地没有改动时,进行拉取会更新相应文件。当某文件本地有改动而仓库没有改动时,推送该文件会在仓库中更新该文件。 冲突处理当某文件仓库和本地都有改动时,拉取和推送就会产生冲突:以仓库为主则本地的更改会丢失,以本地为主仓库的更改会丢失。git 解决冲突的方法是:检测冲突文件,并结合双方更改的代码合并成为新的文件。 更新每次拉取时,会检测并更新有改动的文件。有改动的文件分为以下几种情况: ,并将冲突文件合并,无法合并的会询问保留某一版本,
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:34:00- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |