Git的快速使用

1. Git简介

  • Git最初是Linus花了两周时间自己用C写了一个分布式版本控制系统

  • 特点:

    • 分布式,每一个主机都有完整版本库
    • 开源免费性能好

    注:类似GitHub这种中心环境的存在是为了交换方便,换言之,即使不存在这种中心设备,Git也是可以正常使用的

2. Git安装

笔者使用OS是CentOS Linux,Git的安装命令为

yum install git

3. 创建仓库

创建新文件夹

mkdir daily-scripts
cd daily-scripts/

初始化Git仓库

git init

添加文件到目录中

mv ../POI聚类分析.ipynb POI聚类分析.ipynb

添加文件到仓库

git add POI聚类分析.ipynb

添加文件夹

 git add jupyter-note-book/

添加多个文件(夹)

git add jupyter-note-book/ python-file/

注意:Git是不允许提交一个空的目录到版本库上的

提交文件到仓库

git commit -m "Add a file POI聚类分析.ipynb"

解释:

  • Git的工作流如图所示:

    第一次add命令将改动添加到缓冲区,第二次的commit命令将改动添加到版本库中

  • - m "..." 表示此次提交的版本的描述信息

4. 添加远程库

笔者在GitHub上创建了一个仓库daily-scripts

根据Github的提示,可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库

git remote add origin https://github.com/zhnny/daily-scripts.git

下一步,就可以把本地库的所有内容推送到远程库上:

git push -u origin master

注意:第一次push的时候,提示输入用户名和密码,需要去GitHub的Settings中去生成Token

关于连接远程仓库使用的ssh key和Token,具体可参考博客[GitHub使用Personal access token]

push完成后,GitHub中对应的repo中就有一个相同的仓库了

GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作

5. 克隆远程库

克隆GitHub上的仓库

git clone https://github.com/zhnny/PyTorch-Learning-Note.git

Git支持多种协议,包括https,但ssh协议速度最快

ssh协议需要设置公钥,https不需要,但是https在push时要Token

以下步骤将引导完成生成SSH密钥并将公钥添加到GitHub帐户,(参考Checking for existing SSH keys - GitHub Docs

  • cd到home目录

    cd ~
  • 查看是否存在密钥(如果存在密钥可以上传)

    ls .ssh/
  • 生成密钥(使用GitHub电子邮箱替换)

    ssh-keygen -t ed25519 -C "your_email@example.com"

    接下来一直默认就好,除非你知道你在做什么

  • 复制公钥

    cat .ssh/id_ed25519.pub
  • 将公钥粘贴到你的GitHub账户Settings中的SSH keys中

完成ssh key配置后就可以使用ssh协议克隆repo

git clone git@github.com:zhnny/PyTorch-Learning-Note.git

push时也可以直接使用ssh协议

git push git@github.com:zhnny/PyTorch-Learning-Note.git

而不必再使用Token

6. 参考资料

Checking for existing SSH keys - GitHub Docs

从远程库克隆 - 廖雪峰的官方网站 (liaoxuefeng.com)

GitHub使用Personal access token - 小旭2021 - 博客园 (cnblogs.com)

Git与GitHub的快速使用的更多相关文章

  1. git和github新手快速操作流程

    git和github新手快速操作流程 本文主要介绍利用git版本控制将项目托管到远程仓库github上的一般性操作流程,为了给正在学习git的同学们一个小小的参考,以便更轻松的去深入学习git,本文所 ...

  2. 转:sublime上使用git连接github

    "工欲善其事,必先利其器." 这是古人的教诲,也是一个高效率的工程师需要遵循的法则之一.从大学开始写Java使用了JBuilder,Eclipse,后来写PHP用了Zend,写Ja ...

  3. linux下git以及github的连接与使用

    简单理解 Git 的思想和基本的工作原理,能够更好的进一步和使用Git.在开始学习Git 的时候,最好不要把Git的各种概念和其他的版本控制系统诸如 Subversion 等相比,否则容易混淆每个操作 ...

  4. WebStorm和sublime上使用git连接github(转)

    WebStorm使用git连接github的方法: 用webstorm上传代码时,首先要先下载git,网址一搜就可以搜到,安装git,并且把ssh配置到github上.然后开始配置webstorm,打 ...

  5. 关于Git和Github你不知道的十件事

    Git 和 GitHub都是非常强大的工具.即使你已经使用他们很长时间,你也很有可能不知道每个细节.我整理了Git和GitHub可能提高日常效率的10个常用技巧. GitHub 快捷键: t 和 w ...

  6. Tools - Git与GitHub

    Git Wiki - Git 开源的分布式版本控制系统,用于敏捷高效地管理项目版本. Git - HomePage Git - CHEAT SHEET git_cheat_sheet.pdf GitH ...

  7. git与github

    Git-版本控制,多人协作,分布式: Github-开源项目,远程仓库: 我在github上建立了一个仓库 https://github.com/abcd/2016ife: 现在我要把它下载到本地: ...

  8. Git和Github的应用与命令方法总结

    title: Git和Github的应用与命令方法总结 date: 2016-07-11 14:03:09 tags: git/github [本文摘抄自微信公众平台:AndroidDeveloper ...

  9. 关于Git和Github

    英文原文:Ten Things You Didn't Know Git And GitHub Could Do Git 和 GitHub 都是非常强大的工具.即使你已经使用他们很长时间,你也很有可能不 ...

  10. 使用git和github管理自己的项目---基础操作学习[转]

    原文: https://segmentfault.com/a/1190000003728094 我是通过看廖雪峰的git教程学习的,真的是极好的,以下是我学习过程中的总结,记录下来,方便自己参考以熟悉 ...

随机推荐

  1. 关于JavaScript每句结尾是否需要添加分号问题

    最近在学习JS的时候遇到这么一个问题.由于我之前的学习中一直是写一句JS代码,加一个分号.但是最近我才发现原来JS代码是可以不添加分号的.如果可以不写分号的话会不会更省事呢?于是我在网上查了相关资料整 ...

  2. placeholder属性作用

    placeholder属性作用 1.介绍 该提示会在输入字段为空时显示,并会在字段获得焦点时消失. 注释:placeholder 属性适用于以下的 <input> 类型:text, sea ...

  3. JavaSE流程学习图

  4. jmeter 之 JSON 断言

    1.JSON 断言所在位置:断言->JSON 断言 2.JSON断言中的字段解析 Assert JSON Path exists:json 表达式,判断所字段是否存在,存在则为True, 否则为 ...

  5. ClickHouse MergeTree引擎

    Clickhouse 中最强大的表引擎当属 MergeTree (合并树)引擎及该系列(*MergeTree)中的其他引擎. MergeTree 系列的引擎被设计用于插入极大量的数据到一张表当中.数据 ...

  6. error: expected ‘)’ before ‘PRIx64’

    打印uint64时编译报错 printf("prefix:0x%"PRIx64"\n",ipv6Prefix); 解决办法:添加头文件 #include < ...

  7. 2022年7月15日,第四组,周鹏,JAVA认识的第三天,算法的第一天(╥╯^╰╥)(╥╯^╰╥)

    算了,已经没有力气去创作些什么了, 8种排序方法我只会4种,剩下的以后再补. 发一个逻辑题吧: 一个村落,有50户人,在这些人中存在着n个红眼病. 在保证每人每天最少见一面的情况下,有如下规则: 1, ...

  8. [机器学习] sklearn支持向量机

    支持向量机SVM(Support Vector Machine)是一种用来进行模式识别.分类.回归的机器学习模型. SVM原理描述 模型表示 以一个客户好坏分类为案例,客户信息如下所示: 客户信息数轴 ...

  9. [编程基础] Python字符串替换笔记

    Python字符串替换笔记 Python字符串替换笔记主要展示了如何在Python中替换字符串.Python中有以下几种替换字符串的方法,本文主要介绍前三种. replace方法(常用) transl ...

  10. 旧酒换新瓶,新版M1/M2芯片Macos(Ventura)安装古早版本Python2.7(Python2.x)

    向下兼容特性是软件开发系统的一个重要指标,它是指一个新的系统或者软件能够与旧的系统或软件兼容并正常运行.这意味着旧系统或软件可以在新系统或软件中使用,而不会出现问题.向下兼容对于提高软件或系统的可用性 ...