本地仓库

  仓库(repository)可以理解成一个目录,这个目录里面的所有文件都可以被git管理起来,每个文件的修改删除git都能进行跟踪。

  创建一个空目录---进入文件下---查看当前路径,当前路径即这个仓库所在的位置

$ mkdir learngit
$ cd learngit
$ pwd

  通过git init把这个目录变成git可以管理的仓库,该目录下会多了一个.git目录,这个目录是用来跟踪管理版本库的

$ git init

  新建一个readme.txt文件,将该文件放在learngit目录下,把文件添加到仓库---把文件提交到仓库

$ git add readme.txt
$ git commit -m "wrote a readme file"

  '-m' 后面输入的是本次提交的说明,可以输入任意内容,git commit命令执行成功后会告诉你,1个文件被改动,插入了2行内容(如果你的readme.txt)有两行内容的话,git commit可以一次提交多个文件,因此可以进行如下操作 

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."

远程仓库

SSH key 设置

  如果想要分享本地仓库的内容,我们就需要一个运行git的远程仓库,这个仓库的作用是充当服务器的角色,每天24小时开机,其他每个人都可以从这个服务器仓库克隆一份到自己的电脑上,并且把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交,github就是这样一个提供托管服务的远程仓库。

  首先你需要注册一个github账号,接下来需要将你的本地git仓库和github仓库进行连接设置。由于本地仓库和远程仓库之间的传输是通过SSH加密的,所以需要SSH KEY

  使用如下命令创建SSH KEY

$ ssh-keygen -t rsa -C "user@email.com"

  命令执行完成后,在主账户的目录下查看是否.ssh目录,其中有id_rsa和id_rsa.pub两个文件,这两个就是SSH KEY的密钥对,id_rsa是私钥不能泄露出去,id_rsa是公钥,可以用于连接设置。

  登录github,点击settings-SSH and GPG keys,SSH keys下输入Title(自定义),key文本框里输入id_rsa.pub文件里的内容,点击add key添加完成。添加成功后即可在自己电脑进行推送了。只有添加了SSH key的电脑才能远程推送到github。不过github允许添加多个key,这表示你可以通过多台电脑往github进行推送

关联远程仓库

  SSH key 配置成功后,即可往远程仓库进行推送。此时本地已有一个名为'learngit'的仓库,我们需要在githun建立一个仓库,登录github,点击'create a new repo',在repository name输入仓库名称'learngit',其他保持默认设置,点击'create repository'即可成功创建仓库。新建的这个仓库目前还是空的,我们可以从这个仓库克隆出新的仓库,也可以把本地仓库的内容推送到远程仓库。

  从本地仓库推送到远程仓库

  在本地的仓库执行如下命令,将本地仓库与远程仓库'learngit'进行关联,'origin'是远程仓库的别名,这是git默认的名字,也可以起别的名字,以便将来引用

$ git remote add origin git@github.com:Leila2Utopia/learngit.git

  接下来就可以把本地仓库的内容推送到远程仓库上,由于远程仓库是空的,第一次推送时加上'-u'参数表示,git不但会把本地的master分支推送到远程仓库的mater分支,还会把这两个分支关联起来。

$ git push -u origin master

  推送成功后,在github页面可以看到和本地仓库相同的内容。从现在起,只要本地做了提交,只要执行如下命令,即可将本地master分支的最新修改添加到github远程仓库

$ git push origin master
当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告,这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了,这个警告只会出现一次,后面的操作就不会有任何警告了

SSH 警告

  从远程库克隆

  前面描述的是如何将本地仓库推送到远程仓库,接下来我们将会讨论如何将远程仓库的内容克隆到本地仓库。

  首先在github新建仓库'newgit',创建成功后在本地仓库用命令克隆一个本地库即可

$ git clone git@github.com:Leila2Utopia/newgit.git

git_仓库的更多相关文章

  1. github之克隆

    git clone --depth=10 git_仓库_url 只会获取最近 xx(10条提交记录的)代码,默认是master分支, 如果想要指定分支,可以结合 -b --single--branch ...

  2. Git_远程仓库

    到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了. 可是有用过集中式版本控制系统SVN的童鞋会站出来说,这些功能在SVN里早就有了,没看出Gi ...

  3. Git_远程仓库fork操作

    fork操作:当选择 fork,相当于自己有了一份原项目的拷贝,当然这个拷贝只是针对当时的项目文件,如果后续原项目文件发生改变,你必须通过其他的方式去同步. 使用场景:一般来说,不需要使用 fork ...

  4. Git_添加、删除远端仓库中的文件

    一.将文件添加到远端仓库 1.新增文件 2.使用git add 将文件添加到本地缓存中 3.使用git commit 将文件添加到本地仓库中 4.使用git push 将本地仓库中的修改同步到远端仓库 ...

  5. Git_使用SSH密钥操作远端仓库

    git支持多种传输协议,ssh协议是其中一种. 初次使用git的用户要使用ssh协议大概需要三个步骤: 生成密钥 设置远程仓库(本文以github为例)上的公钥 把git的 remote url 修改 ...

  6. Git_同一个本地仓库上传到不同的远端仓库(github、gitee)

    一.背景 github访问.推拉代码都太慢了,于是想把github上面的项目全部迁移到gitee(码云)上,但又不想放弃在github上维护项目,于是想同时维护两个远端仓库 二.准备工作 1.创建相同 ...

  7. Git_学习_07_ 推送修改到远端

    一.操作流程 多人协作时,若自己的本地代码有了修改,想提交自己的代码,就需要按照以下步骤操作: 1.确认修改正确 使用以下命令,查看有哪些是自己未提交的代码 git status 2.拉取远程最新代码 ...

  8. 【社工】NodeJS 应用仓库钓鱼

    前言 城堡总是从内部攻破的.再强大的系统,也得通过人来控制.如果将入侵直接从人这个环节发起,那么再坚固的防线,也都成为摆设. 下面分享一个例子,利用应用仓库,渗透到开发人员的系统中. 应用仓库 应用仓 ...

  9. 使用github远程仓库

    经过几天对github的研究,终于把自己想完成的给解决了,发现google真的有很多解释,但是很多也会出现一些bug,对于初学者真的很多烦恼,所以整理一份,能给初识github的你有所帮助 一,首先, ...

随机推荐

  1. hdu 4971 多校10最大权闭合图

    /* 很明显的最大权闭合图题 */ #include<stdio.h> #include<string.h> #include<queue> using names ...

  2. SSM(spring mvc+spring+mybatis)学习路径——1-2、spring事务管理

    目录 1-2 Spring事务管理 概念介绍 事务回顾 事务的API介绍 Spring 事务管理 转账案例 编程式事务管理 声明式事务管理 使用XML配置声明式事务 基于tx/aop 使用注解配置声明 ...

  3. 一次源码编译PHP折腾记

    前言LINUX环境下编译安装是很折腾人的一件事情,如果没有C/C++功底,碰到编译器报错,肯定要抓狂了 :):),有些软件需要依赖其它库,必须先把依赖库安装好才能进行软件安装.当你学会了编译安装神技之 ...

  4. 点评国内各大在线app生成平台

    第一个:应用之星-无需编码的在线手机应用开发平台-移动开发平台-Androi应用开发 应用之星是免费的无需编码.基于组件的在线手机应用开发平台,app软件开发平台,手机软件开发平台,为移动开发人员减少 ...

  5. 代理serverSquid3的配置

    1.安装squid3 sudo apt-get install squid3 2,配置squid3 sudo cd /etc/squid3 sudo vim squid.conf /http_acce ...

  6. Test for Job (poj 3249 记忆化搜索)

    Language: Default Test for Job Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 9733   A ...

  7. iOS - 社会化分享-微信分享,朋友圈分享

    我仅仅做了文字和图片分享功能 1. TARGETS - Info - URL Types identifier -> weixin URL Schemes ->  应用id 2.在AppD ...

  8. ES transport client批量导入

    从bulk.txt文件中按行读取,然后bulk导入.首先通过调用client.prepareBulk()实例化一个BulkRequestBuilder对象,调用BulkRequestBuilder对象 ...

  9. .NET页面事件执行顺序

    摘自:http://www.cnblogs.com/kenkofox/archive/2011/03/18/1987998.html和http://blog.csdn.net/yiruoyun/art ...

  10. (三)Appium-desktop 打包

    appium-desktop经过二次开发后,需要打包为应用提供给其它同学使用.我们知道appium-desktop是使用electron来构建跨平台桌面应用程序.electron有electron-p ...