热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

手把手带你入门github

前言github是一个面向开源及私有软件项目的托管平台,什么叫面向开源呢?说白了就是把代码共享,微软以前并不秉持着开源的态度,企图以windows占有率坐拥***,可惜开源共享的大

前言

github是一个面向开源及私有软件项目的托管平台,什么叫面向开源呢?说白了就是把代码共享,微软以前并不秉持着开源的态度,企图以windows占有率坐拥***,可惜开源共享的大势谁都不能阻挡,哪怕是微软帝国。这不,斥资把这个国际知名代码托管平台github给收购了。

那有的同学会说,它有什么用啊,我也不需要把我的代码托管给保管呀。github除了叫代码托管平台,还有一个名字叫版本控制系统(类似的版本控制系统还有TFS、SVN等)。所谓版本控制,就是说一个成品东西有多个版本,比如写小说时,写到某一章,会有多稿,在你发布之前这些稿都可能用到。而代码也是一样,在项目开发过程中,项目代码会有多个历史版本,开发人员可以回到任意版本(过去的节点)。比如开发人员小明,今天下班前提交了一下代码,第二天电脑硬盘被烧,数据全部丢失,那他就可以去服务器上找到历史最近提交的一次版本,并将代码拷贝下来。


本地代码备份到github仓库

好了,前面说的,假如公司项目代码就放在一台电脑上,哪天这台电脑嗝屁了,那就gg了。当然你可以把它再拷贝几份到其他电脑上,但是拷贝来拷贝去,一改动都要拷贝不是很麻烦吗?而且你也不能保证万一哪天都嗝屁了呢(#^.^#)。所以一般公司都有自己的服务器,项目一般是建在服务器上。我是平常自己玩,把代码放在服务器(我用的是http://github.com)上,这样子,在家,在公司都能随时更改代码并提交到github上,是不是很方便呢?

首先你得有一个github的账号,去github的官网:https://github.com/

到sign up 上面按步骤将你的昵称、邮箱、密码填上,并注册,之后登陆。

之后新建一个仓库(git的仓库就相当于你一个项目的储存空间)。如下图所示

进入你的仓库

点击绿色new按钮

建完之后如下图所示,里面什么都没有,是空的。下面有提示让我们create一些什么东西

注:到此为止,你相当于在远程服务器(这里是github)上面建了一个仓库(一个代码项目对应着一个仓库),之后需要我们把我们本地的代码和东西上传到github上对应的仓库上备份一份

现在,就需要去安装git工具啦

打开git的下载地址:https://git-scm.com/

点击这里下载,它会自动检测你的系统环境

安装完之后检测一下安装情况 ---cmd命令行(我这里只讲windows环境,其他环境大同小异)-----------win+r 回车

输入git --version (git的版本)

这个工具的命令都是以git开头,就像dotnet core 一样,所有命令以dotnet开头

ok,现在在你的电脑上git工具已经安装好了,(这一步相当于在本地安装了他git的应用,这个应用是我们用来连接服务器(github)的桥梁)

下面开始演示如何将项目上传到我们之前在github上建的仓库

首先进入你项目所在文件夹的根目录,右键 git bash here

进入到git的界面

在其他类似有命令行的地方也可以使用,比如vs code的终端,vs 的nuget 输出窗口,都是可以使用命令的

首先,我们需要初始化一下本地仓库,输入命令 git init

这条命令是把你本地的仓库给建立起来了,就是把你的项目文件给个他git的仓库标识一下,实际上就是在你的目录下建立了一个.git的文件 (没有找到的同学可以去把隐藏文件给打开)

第二步:将本地仓库和远程仓库对应起来

命令:git remote add origin huguangcheng/git-

git remote add 远程仓库名(可以自己定义,默认是origin,初学不要乱改,以免混淆) 远程仓库地址(在这里我填的是我之前建的仓库的地址)

远程仓库的地址,我们回到github的官网,到你的仓库里新建的仓库去:

把这个地址复制,就是你远程仓库的地址

命令回车之后,git就知道你本地这个项目仓库对应的就是github上的那个仓库了

第三步:上传项目或者代码到远程仓库

上传到服务器需要三步曲:



  1. git add . -------------添加所有的文件到缓存区

  2. git commit -m "备注" ------------将缓存区的所有改动都给提交到本地仓库管理中心去

3.git push -u origin master ----------将本地所有改动提交都推送到远程仓库

master是github远程仓库分支(master是默认的主干,自己就是一条分支)

输入命令回车:

接着我们去我们的github上看看有没有东西:

这显示的是有的,至此我们的项目文件备份就算成功啦~就算电脑哪一天炸了我也能找回我的项目啦~

那备份有了,万一小编不小心,把公司服务器上的项目给弄炸了,该怎么找回来呢?


本地代码备份到github仓库

从远程仓库上拉取项目:

命令:git clone 远程仓库地址

我在本地一个文件夹git bash here

到下面这个位置点击按钮,复制地址(是https)

输入命令:git clone 远程仓库地址(这一个步骤其实已经将本地仓库和远程仓库对应起来了,后边不必再git remote 了)

东西也找回来了~


综合运用场景:

小编有一个自己学习的小项目,但是小编在家里写了,在公司没事也想敲一敲,学习学习,总不能复制一份到u盘吧,回去之后再赋值粘贴?

我们接着上一章讲,假若小编已经在公司把文件上传到github上了,回到家并且clone下来了,如前面所讲。现在小编写了西游记第二章。

然后晚上睡觉的时候我需要把东西上传到github上,以备在公司继续用

我们先看下此时有什么变动(有时候你可能改动比较多,比如.net项目,一个vs 的解决方案你改动几个地方可能有很多地方或者文件重新生成了)

git status

可以看到,他说我没有仓库

我们进入到下一级

cd git-

再git status

这里我们看到有红色的 改动

我们再重复三部曲 add commit push

我们再回到github刷新一下就看到

好了,第二天去公司,没事又能刷刷西游记了。嘿嘿。

注:关于文件丢失和代码丢失该如何找回,在我的另一篇文章里有提到,希望可以帮助到各位同学。有任何疑问的同学可以看我的签名,我们可以互相交流交流。



推荐阅读
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
亮仔
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有