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. python模块/导入模块

    索引取值与迭代取值的差异 l1 = [1,2,3,4,5] 1.索引取值 可以任意位置任意次数的取值 不支持无序类型的数据取值 print(l1[3]) print(l1[3]) #可以直接获取任意位 ...

  2. Rust学习之旅(读书笔记):枚举 (Enum)

    Rust学习之旅(读书笔记):枚举 (Enum) C 语言的枚举类型很弱,不如后来的语言,也不如之前的语言.在 C 语言里面枚举量就是一个名字,更方便的定义常量.今天读了<The Rust Pr ...

  3. Dart开发服务端,我是不是发烧(骚)了?

    前言 最近一段时间,我和我的团队开发了两个 APP. 客户端方面采用了 Flutter,方便跨平台. 服务端方面剑走偏锋,没有采用 php, pythod, java之类的,而是采用了与 Flutte ...

  4. python 实现DES加解密

    from pyDes import * import base64 class Des3(object): def __init__(self, key, iv): # 这里密钥key长度必须为16/ ...

  5. ob_DES_艺恩

    网站 aHR0cHM6Ly93d3cuZW5kYXRhLmNvbS5jbi9Cb3hPZmZpY2UvQk8vWWVhci9pbmRleC5odG1s 抓包返回密文  点到initator,PostA ...

  6. sha1_b64_scrape

    过无限debugger:https://www.cnblogs.com/hkwJsxl/p/16702143.html 网站 aHR0cHM6Ly9hbnRpc3BpZGVyOC5zY3JhcGUuY ...

  7. 一个sql和C#代码结合的分组求和的查询

    业务描述:  业务主表(tab_main 主键 id), 供应商名称(supplier), 金额(amount 需要统计求和),还有分类( 有单独的表categoryid),集中采购标记字段(tend ...

  8. 9、手写一个starter

    一.starte详解: 1.starter场景启动器: SpringBoot-starter是一个集成接合器,主要完成两件事: (1).引入模块所需的相关jar包 (2).自动配置各自模块所需的属性 ...

  9. [常用工具] PyAutoGUI使用教程

    PyAutoGUI使用教程 目录 PyAutoGUI使用教程 1 基础知识 2 一般函数 3 故障保险 4 鼠标函数 4.1 鼠标移动 4.2 鼠标拖动 4.3 鼠标单击 4.4 鼠标滚动 4.5 鼠 ...

  10. ArcObjects SDK开发 025 AO中对象的序列化和反序列化

    在ArcObjects SDK,序列化接口是IPersistStream,该接口的定义如下. 其中GetClassID函数可以获取实际类型的唯一ID,Load函数是反序列化函数,Save函数为序列化函 ...