GitHub入门

创建账户

之前做代码版本控制都是在bitbucket上面的私有仓库。现在开源社区挺火的,想在github找些开源的工程学习一下,于是加入了github,这里记录一下入门的经历。

首先创建账户的过程在这里就省略一万字了…

点这里进github官网

创建完账户,你就可以开始建立自己的第一个仓库了。你会在你奇奇怪怪的默认头像旁边看见一个很大的“+”号,点下去,可以看到2个选项,第一个就是新建个代码仓库。

填好仓库名,然后点上创建一个README,最好也填点说明。

然后你就能看到下面的界面了,现在里面只有一个ReadMe,注意红框的位置,这就是你的仓库地址,如果要克隆仓库,就是这个地址。

接下来就可以添加你的工程文件了,你可以用网站上的功能按钮新建文件或者上传文件,但是推荐还是在本地用命令行操作。

那本地怎么操作呢?有2个方案:

1. 直接下载github的桌面程序,是可视化的,很容易上手,建议新手使用。https://desktop.github.com/

2. 使用命令行,这里推荐使用命令行,一来效率高,二来以后你到不同的平台上,能很快的上手,再者如果你以后用的服务器没有图形界面,只能用命令行。所以还是熟悉的好。
首先你需要安装git

Linux上安装Git

红帽系列

$ sudo yum install git

Ubuntu系,请尝试用 apt-get:

$ sudo apt-get install git

Mac上安装Git

在 Mac 上安装 Git 有多种方式。 最简单的方法是安装 Xcode Command Line Tools。 Mavericks (10.9) 或更高版本的系统中,在 Terminal 里尝试首次运行 git 命令即可。 如果没有安装过命令行开发者工具,将会提示你安装。

如果你想安装更新的版本,可以使用二进制安装程序。 官方维护的 OSX Git 安装程序可以在 Git 官方网站下载,网址为 http://git-scm.com/download/mac

Windows上安装Git

windows用户用2个选择:
1. 如果命令已经熟悉的建议用msysGit可以去官网下载:
https://git-for-windows.github.io/
2. 如果安装了github桌面版,自动会有个git shell (我用的这个,比较好看)
https://desktop.github.com/

安装就一路下一步就好了。由于我是windows环境,这里重点就讲windows上git的使用,不过命令都是通用的。

Windows上git使用

安装完msysgit后,会有Git Bash的图标,安装完github桌面版会有个git shell
我建议用git shell,比较友好(但是命令都是通用的)。Git shell里面,windows和linux的命令都可以用!是不是很赞。

打开后是一个控制台,然后就可以输入命令了

一开始什么都不会的时候,可以使用

 git help

查看可用命令。下面先记录一些刚开始可能会用到的命令,剩下的命令以后再记录。

Git常用命令

获取仓库

可以用

git init

初始化一个仓库,但是一般常用的都是克隆现有的仓库,这里还是用刚才创建的helloworld仓库

git clone https://github.com/hk029/hello-world.git

url后面可以用一个新的路径名,让它保存到特定的目录下,默认就是当前路径下创建一个和仓库名一样的目录。

注意:这个命令是克隆了一个仓库而不是简单的拷贝了文件下来,还保存了有关仓库的信息,基本就是克隆出了一个小的本地仓库。

然后可以cd进去看看

这里有个比较有意思的地方,你会发现目录名后一个’[master]’这个表示目前这是一个master分支。当前目录有个.git目录,它会记录仓库的信息,所以你能看到‘[master]’这个标签。之后你对当前目录的文件做的操作,都会被记录。

状态与暂存

检查目前仓库的状态是挺重要的一个环节,以免你提交代码的时候提交的不是最新代码。
一般来说,你目前目录下的文件就两种状态

  • 跟踪
  • 未跟踪

我们可以先输入命令看看当前仓库的状态

 git status

可以发现目前目录下很干净,一切都和当初克隆下来一样,所以状态显示也是很干净。

我们新键一个文件,或者从别的地方移动一个文件到当前目录下,看看有什么变化。

我们可以看见,‘[master]’之后多了几个东西。

+1 表示目前有1个新文件
~0 表示0个修改的文件
-0 表示0个删除的文件
! 表示未保存

我们再输入status命令看看

发现目前有个未跟踪的文件了。

我们把它暂存到暂存区

 git add NewFile

这个命令会把这个文件放到暂存区(还是在本地)到时候提交的时候就会把暂存区的东西提交到网上。

这个时候,我们发现红色的字变成了绿色,感叹号也没有了,说明目前修改都已经保存了。

再输入satus命令看看

这个时候已经是跟踪状态了。

如果我们这时候修改NewFile会发生什么呢?

可以发现,又变红了,这时候出先了~1,说明有一个修改文件。使用status命令看看

果然,出现了一个NewFile在未跟踪里面。这不是很奇怪吗,一个文件既是跟踪又是未跟踪?其实这很好理解,你可以理解为暂存区还有一个NewFile拷贝,就是原来那个我们add的“空”的NewFile。修改的这个不在暂存区,如果这时候我们把所有修改提交,那么提交的是“空”的NewFile。

所以当我们提交前,一定要看是不是还有红字?是不是还有什么修改没有更新到暂存区!

最后,还说下,其实git status有个简化输出的形式。

git status -s

这里我为了让所有状态都出现,删除了README.md,可以发现这个简化版输出其实更直观。

我们把所有的修改更新到暂存区吧:

git add NewFile
git rm README.md

现在所有的更新都更新到暂存区了,可以提交了!

提交到本地仓库

这里的commit只是保存到了本地。如果你只需要一个本地仓库,那么现在也就够了。

git commit -m "my first commit"

注意:一定要带-m加上说明

推送到远程仓库

因为你是直接从远程仓库拷贝的,所以你输入

git remote

会发现已经有个orignal了
这个时候你直接git push就行了

git push

用SSH连接并推送到远程仓库

但是,建议还是使用ssh的模式,安全点。下面说下ssh的模式怎么用,首先你要创建一个私钥,就是在自己电脑里的钥匙。

ssh-keygen -t rsa -C "your email addr"


第一个是问你改不改目录,回车就好。然后输入密码,确认(这个密码是生成这个密钥的密码,也可以为空,这样你下次push就不用输入密码了)。

然后你就可以去那个目录下找id_rsa.pub文件,打开(随便用什么打开),把里面的东西复制。

然后去网站上把自己私钥输入进去,头像——settings

根据图片点New SSH key

然后输入一个随便什么title自己知道就好,和你刚才复制的东西在key里

这时候,就算在github上注册了你的私钥,然后在输入

ssh -T git@github.com

看看是不是能ssh连上github

好了一切准备就绪。
我们先把远程仓库加上:

选择ssh,然后复制后面的地址。

(因为之前有一个original的,我们这里方便测试先删了它)

git remote rm origin

输入

git remote

发现没东西了,可以添加新的远程仓库了。

git remote add origin git@github.com:hk029/hello-world.git

然后输入

git push -u origin master

master是你的分支,origin是你的远程仓库

第一次git push -u origin master后,就可以用直接用git push指令了


好了这些基本操作就可以满足一些日常使用了,后续再加一些关于分支还有撤销 删除的操作。

GitHub与Git指令入门的更多相关文章

  1. 使用git指令下载github仓库代码(笔记)

    通过Git指令下载源码 Git概念说明 ​ 三种状态:修改状态.暂存状态和Git仓库 ​ 基本的Git工作流程: ​ 在工作目录中修改文件 ​ 暂存文件,将文件的快照放入暂存区域 ​ 提交更新,找到暂 ...

  2. 学会Git玩转GitHub(第三篇) 入门详解 - 精简归纳

    学会Git玩转GitHub(第三篇) 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 10 / 25 转载请注明出处!️ 目录 学会Git玩转GitHub(第三篇) 入门详解 - 精简归纳 ...

  3. git简易入门(github)

    本文讲解下git的使用,包括使用git上传项目工程到github,以及错误解决. 1.安装git 使用apt-get安 sudo apt-get update sudo apt-get install ...

  4. 001 手把手用Git,Git从入门到上传本地项目到Github,看这篇就够了

    安装git 下载Git 下载好后,一路next即可 安装好后,打开Git bash,进行配置 首先配置自己的身份 git config --global user.name "Name&qu ...

  5. 第三章 Git的入门 - 读书笔记

    Android驱动月考3 第三章 Git的入门 - 读书笔记 对于Github,这是全世界最大的开源平台,你可以把你做的项目在这里开源,把你发现的一些新技术在这里开源,向全世界的开发者们分享,大家都彼 ...

  6. git简单入门

    git简单入门 标签(空格分隔): git git是作为程序员必备的技能.在这里就不去介绍版本控制和git产生的历史了. 首先看看常用的git命令: git init git add git comm ...

  7. GUI for git|SourceTree|入门基础

    原文链接:http://www.jianshu.com/p/be9f0484af9d 目录 SourceTree简介 SourceTree基本使用 SourceTree&Git部分名词解释 相 ...

  8. Android系统移植与驱动开发--第三章 Git使用入门及在学习中有感

    第三章 Git使用入门 使用Git的目的是减少各种版本的Linux的压缩大小,提供源代码在Linux上进行编译. 在这一个章节中,其实就是关键步骤的操作,虽然Git与我们学习的android没有很大的 ...

  9. GitHub Flow & Git Flow 基于Git 的两种协作开发模式

    介绍基于Git 两种协作开发模式,GitHub Flow & Git Flow 对于Github 一些好用的特殊操作技巧 ,可以见GitHub 特殊操作技巧 和Git的基本操作 一 GitHu ...

随机推荐

  1. OpenGL中的需要注意的细节问题

    OpenGL中的需要注意的细节问题 1. 虽然我们使用Windows的BMP文件作为纹理时,一般是蓝色的像素在最前,其真实的格式为GL_BGR而不是GL_RGB,在数据的顺序上有所 不同,但因为同样是 ...

  2. [label][JavaScript] 自动填充内容的JavaScript 库

    一个帮助你针对不同标签自动填入内容的轻量级javascript类库 - fixiejs http://www.gbtags.com/technology/javascript/20120802-fix ...

  3. solr特点三: QueryElevation(编辑结果排序)

    在理想的情况下,搜索引擎只返回与用户查询相关的文档.而在现实的查询中,编辑(没发现更合适的表达)通常需要指定特定文档在搜索结果中的特定位置.这样做有很多原因.或许 “置顶” 的文档就是最好的查询结果. ...

  4. 论 BUG调试与(程序猿)初学者

    作为一枚程序猿,BUG调试是最基本的技能,对于初学者更是重中之重.个人而言,要想为自己的程序猿生涯更上一层楼,就得知道什么是BUG调试,而且还必须知道怎么调好BUG.那么BUG究竟是什么呢?在我之前的 ...

  5. JS DOM对象控制HTML元素详解

    JS DOM对象控制HTML元素详解 方法: getElementsByName()  获取name getElementsByTagName()  获取元素 getAttribute()  获取元素 ...

  6. 使用ssm实现校验密码

    由于审题不清,在完成作业“servlet实现进行用户名和密码验证”中使用了jdbc连接数据库的方式实现,没用静态方式验证,故本次作业使用ssm实现 本次作业上传到百度网盘:链接:https://pan ...

  7. APScheduler定时任务

    python模块(APScheduler定时任务)   APScheduler简介 在平常的工作中几乎有一半的功能模块都需要定时任务来推动,例如项目中有一个定时统计程序,定时爬出网站的URL程序,定时 ...

  8. windows文件名太长无法删除的解决办法

    安装nodejs 的模块hexo后,由于香重新安装,在删除的时候却提示文件名太长无法删除,dos命令.回收站各种都无法搞定,后来找到解决办法: 1.进入这些文件的所在目录的上层目录,右键这些文件的所在 ...

  9. tf入门-tf.nn.conv2d是怎样实现卷积的?

    转自:https://blog.csdn.net/mao_xiao_feng/article/details/78004522 实验环境:tensorflow版本1.2.0,python2.7 介绍 ...

  10. UDP的优点

    UDP优点 关于何时.发送什么数据的应用层控制更为精细 只需要应用层把数据传给UDP,UDP就把数据打包到网络层.对于TCP来说,存在一个拥塞控制机制,当链路变得拥塞时,会抑制TCP发送方,并造成数据 ...