本地仓库

  仓库(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. 用keil编写的 C51错误 *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: ?C_START

    可能原因: 替换工程的文件未先 remove该文件. 正常替换文件步骤: 1. 右键 欲 替换的文件,remove  XXXXX.c from build  ----> remove  XXXX ...

  2. shell中eval命令

    原文:http://www.cnblogs.com/xdzone/archive/2011/03/15/1984971.html 语法:eval cmdLine eval会对后面的cmdLine进行两 ...

  3. 小议:部署SharePoint 2013时,无法连接SQL Server问题

    最近在给学员培训时发现,个别学员在完毕SharePoint 2013部署时,无法连接SQL Server,两种报错情况,例如以下所看到的: :配置SharePointConnect to SQL Se ...

  4. object-c 不定參数的遍历和原理

    object-c接收随意类型的參数: /** * 接收String类型的多个參数 * @param firsParam 第一个參数 */ -(void)TestString:(NSString*)fi ...

  5. 通过buildpath 导入jar和在lib下导入的jar包区别

    jar包放置在WEB-INF/lib下和通过build path导入的区别是什么? jar包直接拷贝到WEB-INF/lib下和以userLibrary形式引入的区别? jar包放置在WEB-INF/ ...

  6. vue组件的一个总结

    用vue进行开发到目前为止也有将近一年的时间了,在项目技术选型的时候隔壁组选 react的时候我们坚持使用vue作为前端的开发框架.虽然两者思想上的差异不大,但是vue的语法在代码的可读性以及后期的维 ...

  7. tensorflow移植到ios

    1.git clone到本地 git clone https://github.com/tensorflow/tensorflowxcode 2.compile static library 安装xc ...

  8. 操作系统-虚拟机-百科:VM

    ylbtech-操作系统-虚拟机-百科:VM 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的.运行在一个完全隔离环境中的完整计算机系统. 虚拟系统通过生成现有操作系统的 ...

  9. 数据预处理之Minkowski距离计算

    template <class T1, class T2> double Minkowski(const std::vector<T1> &inst1, const s ...

  10. Pie(二分)

    http://poj.org/problem?id=3122 题意:将n个圆柱体的不同口味的pie分给m个人,要求每个人分得的pie必须体积相同,且来自于一块pie(即:只分得一种口味的pie),求最 ...