当前位置:   article > 正文

关于github与git

关于github与git

本文打算详细介绍一下程序员工作必备github,以及对应的配套指令git。本人目前还是经常使用网页版以及windows桌面版github,之前虽然了解过git以及它的版本管理原理,以及与其他的版本管理工具差别,但是当时没有及时记录下来,现在想想好好后悔,以后打算有什么新想法或者新技能就及时记录下来,留作备忘。同是本文也打算不断更新。

首先推荐一个比较好的网站,里面有很多开源项目,简直就是一个开源工具合集,你可以找到任何你需要的有关项目,同时还可以查看最新项目资讯。
https://www.hellogithub.com/
github中文社区:
https://www.githubs.cn/
还有这个英文版的:
https://blog.csdn.net/qq_39658059/article/details/85774757
GitHub上最受欢迎的57个深度学习开源项目:
https://wenku.baidu.com/view/615801da690203d8ce2f0066f5335a8103d26643
同时厚颜无耻的,再推一下我的github地址,欢迎大家查看交流,大家可以看看我正在进行的项目。
https://github.com/edwardzcl


废话不多说,还是先好好介绍下github吧。
首先推荐一个博主:
https://www.jianshu.com/u/737d8047278d

GitHub初学入门者的图谱,介绍Github网站每个功能的意思

一、键盘快捷键

=============================

在GitHub中,很多页面都可以使用键盘快捷键。在各个页面按下“shift + /”都可以打开键盘快捷键一览表,如下图:
在这里插入图片描述快捷键


二、工具栏

============================
在这里插入图片描述
工具栏


1、LOGO
点击GitHub的LOGO就会进入控制面板。

2、Search(搜索)
在这里输入想要找的用户或代码片段,就可以搜索到与之相关的信息

3、Pull Request(请求)
显示用户已经进行过Pull Request。通过这里,开发者可以很方便地追踪Pull Request的后续情况。
4、Issue(问题)
在这里可以查看用户拥有权限的仓库或分配给自己的Issue。当用户同时进行多个项目时,可以在这里一并查看Issue。

5、Gist(代码片段)
Gist功能主要时用于管理及发布一些没必要保存在仓库中的代码,比如小代码片段等。系统会自动管理更新历史,并且提供了Fork功能。在Gist上添加代码示例可以嵌入博客中,当然,如果选择了语言,还会自动添加语法高亮。

6、Notifications(通知)
这一图标用于提示用户是否有更新的通知。

7、Create a new…
创建新的Git仓库或Organization,向Organization(组织)添加成员、小组、仓库,为仓库添加Issue或collaborator(合作者)等操作的菜单都聚集在这里。显示的内容会根据当前页面的不同而改变。

8、头像、用户名

三、个人信息页
在这里插入图片描述
个人信息页


1、用户信息
显示注册的基本信息,包括姓名、所属公司、邮箱地址、已加入的Organization(组织)等,如果对该用户感兴趣,可以点击页面右上角的Follow(跟随)按钮(已经Follow的用户会显示Unfollow)。这样一来,这个人在GitHub上的活动都会显示在您的News Feed(新闻提要)中。

2、Popular Repositories(受欢迎的库)
显示公开仓库中受欢迎的、拥有大量Start(收藏、标星)的部分热门仓库

3、Repositories contributed to(做过贡献的库)
按时间先后顺序显示该用户作过贡献的部分仓库。该用户可能是仓库的软件开发者,也可能只是通过发送Pull Request等方式对该仓库做过某些贡献。

4、Public contributions(公共贡献)
一格表示一天,记录当日用户对拥有读取权限的仓库的大致贡献度。贡献度的衡量标准包括发送Pull Request的次数、写Issue的次数、进行提交的次数等。颜色越深代表贡献度越高,绿色天数越多说明在GitHub上活跃度越高。

5、Contribution activity(贡献过的活动)
按时间顺序显示具体贡活动的链接

6、Repositories
显示该用户公共开的仓库。Fork(叉)来的仓库也显示在这里。
仓库名称、简要说明、使用的语言、最终更新日期都会出现在列表中。星形图案旁边的数字表示这个仓库添加Star的人数,再旁边是杯Fork数。
在这里插入图片描述
Repositories


7、Public Activity(公开的活动)
显示该用户的公开活动信息。活动就是指这个用户做了什么,比如向仓库进行提交或者Pull Request等,其大量的公开信息都会被记录在这里。从这里可以了解到这个用户平常都在GitHub上做些什么,比如查看一下崇拜已久的程序员的公开活动,就可以知道他现在在关注些什么,或者正在热心于开发些什么。
在这里插入图片描述

Public Activity


四、仓库
在这里插入图片描述
仓库


1、用户名(组织名)/仓库名
2、Watch、Star、Fork
眼睛图标标着Watch字样,点击这个按钮就可以Watch该仓库,今后该仓库的更新信息会显示在用户的公开活动中。Star旁边的数组表示给这个仓库添加Star的人数,这个数越高,代表该仓库越受关注。

Watch与Star不同的地方在于,Watch之后该仓库的相关信息会在您的个人Notifications中显示,让用户可以追踪仓库的内容,而Star更像是书签,让用户将来可以在Star标记的列表中找到该仓库。另外,Star数还是GitHub上判断仓库热门程度的标志之一。

3、Code,显示该仓库的文件列表,以及该仓库的简单说明和URL。

4、Pull Request
在Pull Request中可以列表查看并管理Pull Request。代码等更改和讨论都可以在这里进行。旁边的数字表示尚未Close的Pull Request的数量。

5、Pulse
显示该仓库最近的活动信息。该仓库中软件是无人问津还是在热火朝天的开发之中,从这里可以一目了然。

6、Graphs
以图表的形式显示该仓库的各项指标,让用户轻松了解该仓库的活动倾向

7、SSH Clone URL
clone仓库是所需要的URL。点击右侧的剪切板图标可以将URL复制到剪切板中,点击STTPS、SSH图标可以切换到相应协议的URL。

8、Clone in Desktop
启动GitHub专用的客户端应用程序进行clone。GitHub专用的客户端应用程序有Windows和Mac版。以及直接下载仓库的ZIP包

9、commits,查看当前分支的提交历史,左边的数字表示提交数

10、branches,查看仓库的分支列表,左边的数字表示当前拥有的分支数

11、releases
显示仓库的标签(Tag)列表。同时可以将标签加入时文件以归档形式(ZIP、tar.gz)下载到本地。软件在版本升级时一般都会打标签,如果需要特定版本的文件,可以从这里寻找。

12、contributore(贡献者)
显示对该仓库进行提交的程序员名单。左边的数字表示程序员的人数

切换分支的地方已经显示当前分支

13、files(文件列表)
可以产看当前分支的文件,顶端为最新提交的相关信息。在文件或目录的列表中,从左至右分别为文件名称、该文件最新的提交日志、更新日期。点击目录或文件可以查看相应内容。

文章首发于《读你》博客

以上就是基本的github版面介绍了。


下一部分将介绍github的基础使用教程。这其实是一片翻译文献。

的Hello World项目是计算机编程历史悠久的传统。这是一个简单的练习,可以让你在学习新东西时开始学习。让我们开始使用GitHub!

您将学习如何:

  • 创建和使用存储库
  • 启动并管理新分支
  • 对文件进行更改并将其作为提交推送到GitHub
  • 打开并合并拉取请求

什么是GitHub?

GitHub是用于版本控制和协作的代码托管平台。它可以让您和其他人在任何地方协同工作。

本教程教您GitHub基本知识,如存储库分支提交Pull请求。您将创建自己的Hello World存储库并学习GitHub的Pull Request工作流,这是一种创建和检查代码的流行方法。

无需编码

要完成本教程,您需要GitHub.com帐户和Internet访问权限。您不需要知道如何编码,使用命令行或安装Git(基于版本控制软件GitHub)。

提示:在单独的浏览器窗口(或选项卡)中打开本指南,以便在完成本教程中的步骤时看到它。

步骤1.创建存储库

一个通常用于举办单个项目。存储库可以包含文件夹和文件,图像,视频,电子表格和数据集 - 您的项目需要的任何内容。我们建议包括README或包含项目信息的文件。GitHub可以在创建新存储库的同时轻松添加一个。它还提供其他常见选项,例如许可证文件。

您的hello-world存储库可以是存储想法,资源甚至与他人共享和讨论事物的地方。

创建新存储库

  1. 在右上角,在您的头像或identicon旁边,单击 然后选择New repository
  2. 命名您的存储库hello-world
  3. 写一个简短的描述。
  4. 选择使用自述文件初始化此存储库

新的回购形式

单击创建存储库:田田:

第2步。创建一个分支

分支是一次处理不同版本的存储库的方法。

默认情况下,您的存储库有一个名为branch的分支master,该分支被认为是权威分支。我们使用分支进行实验并在提交之前进行编辑master

当您在分支机构上创建分支时master,您正在制作该master时间点的副本或快照。如果其他人master在您的分支机构上工作时对分支进行了更改,则可以提取这些更新。

该图显示:

  • master分支
  • 一个叫做的新分支feature(因为我们在这个分支上做'特色工作')
  • feature它融入之前的旅程master

分店

你有没有保存过不同版本的文件?就像是:

  • story.txt
  • story-joe-edit.txt
  • story-joe-edit-reviewed.txt

分支机构在GitHub存储库中实现了类似的目标。

在GitHub,我们的开发人员,编写人员和设计人员使用分支来保持错误修复和功能工作与我们的master(生产)分支分开。当更改准备就绪时,他们将其分支合并到master

创建一个新分支

  1. 转到新的存储库hello-world
  2. 单击文件列表顶部的下拉列表:master:master
  3. readme-edits在新分支文本框中键入分支名称。
  4. 选择蓝色的创建分支框或按键盘上的“Enter”。

分支GIF

现在你有两个分支,masterreadme-edits。它们看起来完全一样,但不会很久!接下来,我们将更改添加到新分支。

第3步。制作并提交更改

好样的!现在,您在readme-edits分支的代码视图中,这是一个副本master。我们来做一些编辑。

在GitHub上,保存的更改称为提交。每个提交都有一个关联的提交消息,这是一个解释为什么进行特定更改的描述。提交消息可捕获更改的历史记录,因此其他贡献者可以了解您已完成的操作以及原因。

制作并提交更改

  1. 单击该README.md文件。
  2. 点击  要编辑的文件视图右上角的铅笔图标。
  3. 在编辑器中,写一点关于你自己。
  4. 编写描述更改的提交消息。
  5. 单击提交更改按钮。

承诺

这些更改将仅对readme-edits分支上的README文件进行,因此现在此分支包含的内容与之不同master

步骤4.打开Pull请求

很好的编辑!现在您的分支中有更改master,您可以打开拉取请求

Pull Requests是GitHub上合作的核心。当您打开拉取请求时,您提出了更改并请求某人审核并提取您的贡献并将其合并到他们的分支中。拉请求显示来自两个分支的内容的差异或差异。更改,添加和减少以绿色和红色显示。

提交后,即使在代码完成之前,您也可以打开拉取请求并开始讨论。

通过在拉取请求消息中使用GitHub的@mention系统,您可以询问特定人员或团队的反馈,无论他们是在大厅还是10个时区之外。

您甚至可以在自己的存储库中打开pull请求并自行合并。在开展大型项目之前,这是学习GitHub流程的好方法。

打开Pull Request以更改README

点击图像查看大图

截图
点击  “拉取请求”选项卡,然后从“拉取请求”页面中,单击绿色“ 新拉”请求按钮。PR-标签
在“ 示例比较”框中,选择您创建的分支readme-edits,以与master(原始)进行比较。科
在比较页面上查看差异中的差异,确保它们是您要提交的内容。DIFF
如果您对要提交的更改感到满意,请单击绿色的“创建拉取请求”按钮。创建拔
为您的拉取请求提供标题,并写下您的更改的简要说明。PR-形式

完成邮件后,单击“ 创建拉取请求”


提示:您可以使用的表情符号拖放图片和GIF到的意见和引入请求。

步骤5.合并您的Pull请求

在最后一步中,是时候将您的更改结合在一起 - 将您的readme-edits分支合并到master分支中。

  1. 单击绿色合并拉取请求按钮以将更改合并到master
  2. 单击确认合并
  3. 继续删除分支,因为它的更改已合并,紫色框中的删除分支按钮。

合并删除

庆祝!

通过完成本教程,您已经学会了创建一个项目并在GitHub上发出拉取请求! :田田: :octocat::ZAP:

以下是您在本教程中完成的内容:

  • 创建了一个开源存储库
  • 开始并管理一个新的分支
  • 更改了文件并将这些更改提交给GitHub
  • 打开并合并了一个Pull Request

看看你的GitHub个人资料,你会看到你的新贡献正方形

要了解有关Pull请求功能的更多信息,我们建议您阅读GitHub流程指南。您也可以访问GitHub Explore并参与开源项目:octocat:


提示:查看我们的其他指南YouTube频道按需培训,了解有关如何开始使用GitHub的更多信息。


以上就是github的基本介绍了,这些东西其实你操作一两遍就是完全学会了,其次,你还可以去百度下载github windows桌面版安装,使用更加便捷,而且一般还会有userguide。
更多类似参考:https://www.runoob.com/w3cnote/git-guide.html
另外这里还有一个中文插件:
https://blog.csdn.net/qq_27840695/article/details/78551092
https://www.jianshu.com/p/4eddb1960e17


下半部分我打算介绍一下git命令,以及它的版本管工具原理,以及一些骚操作。
先来开个篇吧,之后再来补充。。
原文https://www.cnblogs.com/cb0327/p/5066685.html

 

正文

本文背景,在实际项目中使用git已有一年,发现不少同事虽然会使用常用git指令,但并不理解每个指令对应的作用原理。今天静下心总结下git 的基本理解:代码的存在区域;本文以实际项目出发,理清使用git过程中,代码的迁徙流程。

git跟传统的代码管理器(如:svn)不同, 主要区别在于git多了个本地仓库以及缓存区,所以即使无法联网也一样能提交代码。术语解释:

工作区间: 即我们创建的工程文件, 在编辑器可直观显示;

缓存区: 只能通过git GUI或git shell 窗口显示,提交代码、解决冲突的中转站;

本地仓库: 只能在git shell 窗口显示,连接本地代码跟远程代码的枢纽,不能联网时本地代码可先提交至该处;

远程仓库: 即保存我们代码的服务器,本文以公共版本控制系统:github为例,登录github账号后可直观显示;

接下来, 我们以三个实际操作的例子讲解git的日常,代码如何在上述4个区域流动。

1.提交 代码到远程仓库

首先在本地工作区间创建一个新工程:testGit,然后在项目里新建一个README.md, 工作区间的工程如下:

远程仓库创建一新工程,具体操作参见 如何在window上把你的项目提交到github

将该新建的工程提交至远程仓库,关键的git 指令如下:

 
  

指令解释:

`git init ` 表示在当前的项目目录中生成本地的git管理;

`git add README.md` 将“README.md”文件保存至缓存区,实际开发中一般使用 `git add -A`,使用-A:将新增、删除、修改的文件改动全保存至缓存区;

`git commit -m "first commit"` 将代码从缓存区保存至本地仓库,实际开发中一般使用`git commit -am "说明的文字"`,使用 -a:如果没文件更改操作(增、删、改名)就可以省略git add指令;

`git remote add origin https://github.com/wteam-xq/testGit.git`将本地仓库与指定的远程仓库创建 联系;

`push -u origin master` 将本地仓库代码推送至远程仓库,实际开发中 该指令后需要输入github 账号以及密码。(首次提交注意别遗漏`-u`指定默认主机)

以上指令正常执行后, 本地仓库的代码就提交到远程仓库了:

原理图如下:

2.将远程仓库代码更新到本地

首先我们新建一文件夹:copyTestGit,进入该文件夹后使用git 指令:

git clone https://github.com/wteam-xq/testGit

指令执行完毕后, 就在该文件夹下生成一份副本啦(相当于多人协作时另一台设备上的工程文件),原理图如下:

接下来, 讨论`git pull`、 `git fetch` 、 `git merge`的关系

先抛简单结论:

 
  

实际项目:我们在testGit工程中修改README.md,然后更新、提交下代码 执行以下git 指令(日常使用中会用`git status`看看是否有文件需要`git add`):

 
  

原理图如下:

远程仓库代码更新后, 我们进入另一本地仓库:copyTestGit\testGit,将远程仓库的代码更新至该本地仓库。

在该目录下输入以下git指令:

 
  

日常使用图方便一般都是直接:

 
  

以上指令的详细探讨请看 少用pull,多用fetch 和 merge

(注意: 本文注重git工作原理图不考虑多分支情况,且使用了git clone所以副本工程已经跟主分支建立了追踪关系,所以'pull' 'fetch' 后都不接分支代码 )

以上指令区别的原理图:

3.更新到本地仓库时, 出现冲突,解决冲突

首先, 我们先重现下出现冲突的情况; 在testGit目录下先修改README.md文件第三行,hello word 修正为 hello world:

提交该修改到远程仓库(提交细节参照前述步骤):

然后, 在副本工程copyTestGit/testGit 目录下也修改README.md文件第三行,hello word 修正为 hello world2:

现在副本工程修改完了代码打算提交,提交前先将远程仓库最新代码更新至本地仓库, 惯例使用指令:

 
  

指令执行之后会发现以下冲突提示:

出现以上提示, 说明本次更新代码失败;主要在于本地工作区间跟远程仓库的新代码冲突了, 图解如下:

接下来,有两种方式处理冲突: 放弃本地修改或 解决冲突后提交本地修改

3.1 放弃本地修改 

放弃本地修改意味着将远程仓库的代码完全覆盖本地仓库以及本地工作区间, 如果对git的指令不熟悉那大可以将本地工程完全删除,然后再重新拷贝一次(`git clone`)。

当然, git如此强大没必要用这么原始的方法,可以让本地仓库代码覆盖本地修改,然后更新远程仓库代码; 

本地仓库代码完全覆盖本地工作区间,具体指令如下:

 
  

(注意: 别遗漏 "head" 后的 " ." )

然后更新远程仓库的代码就不会出现冲突了:

 
  

原理图如下:

3.2 解决冲突后提交本地修改 

覆盖本地代码解决冲突方法适合不太懂git的菜鸟, 像我这种git老鸟(其实并不是(¬_¬))当然用更高级的git指令解决冲突。

细心的同学或许已发现,缓存区 除了开始出现外,后续提交代码、更新代码篇章都在打酱油;终于,这次冲突解决事件, 它将会是主角!

解决冲突后提交本地修改的思路大概如下:

将本地修改的代码放在缓存区, 然后从远程仓库拉取最新代码,拉取成功后再从缓存区将修改的代码取出, 这样最新代码跟本地修改的代码就会混杂在一起, 手工解决冲突后, 提交解决冲突后的代码。

原理图:

对应到我们实际项目中, 进入 copyTestGit/testGit 执行指令`git pull`出现 (重回到上述冲突场景)

 
  

将本地修改放入缓存区(成功后本地工作区间的代码跟本地仓库代码会同步), 具体指令:

 
  

从远程仓库获取最新代码,具体指令:

 
  

然后, 取出本地修改的代码, 具体指令:

 
  

然后, git 自动合并冲突失败, 冲突的代码就很清晰的展现在我们面前了:

(小广告:3.2栏更多细节请移步本人另一博文git 代码冲突处理

手工解决冲突:

告诉git, 这个文件(README.md)的冲突 已经解决:

 
  

提交代码(细节参考前述流程):

 
  

于是本地有冲突的代码就提交成功啦!

后记:

以上很多git指令适合在无图形化界面的linux中使用(例如:阿里云服务器操作git), 实际开发中当然是用图形化界面解决!

解决冲突之覆盖本地代码对应的是: 工程目录下tortoiseGit(git 小乌龟) “Revert” :

解决冲突之解决冲突后提交本地修改对应的是: 手工合并冲突代码后,工程目录下tortoiseGit(git 小乌龟) “resolve” :

参考文章:

1.Git版本控制与工作流

2.图解 Git 管理项目代码

3.如何在window上把你的项目提交到github

4.Git远程操作详解

5.Git 少用 Pull 多用 Fetch 和 Merge

6.Git教程推荐一(廖雪峰)

7.Git教程推荐二(云溪)

8.Mac OS X Git安装教程

9.git-ssh 配置和使用

10.github设置添加SSH

11.生成多个git ssh密钥

12.ssh-agent 使用指南



https://www.runoob.com/w3cnote/git-guide.html
https://m.runoob.com/git/git-remote-repo.html
https://blog.csdn.net/Sophia_11/article/details/95051346

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/759380
推荐阅读
相关标签
  

闽ICP备14008679号