`
李大宝
  • 浏览: 14640 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

git remote 建立远程仓库

    博客分类:
  • GIT
阅读更多

使用git嘛,第一步肯定是得新建一个git仓库

1.初始化一个空的git仓库

1 software@debian:~$ mkdir yafeng
2 software@debian:~$ cd yafeng/
3 software@debian:~/yafeng$ ls
4 software@debian:~/yafeng$ git init
5 Initialized empty Git repository in /home/software/yafeng/.git/
6 software@debian:~/yafeng$ 

命令注释:

在上面的命令中,真正去初始化的是第四行的那句---git init

当然,还有很多同学会看见加了参数--bare的命令,这个命令会在我们以后慢慢给大家解释,对于不是作为共享仓库,而是作为一个自己操作的仓库,上面这样就足够了。

 

好了,现在yafeng目录就是我们的据点---git仓库了哦。

 

2.向仓库提交我们写的文件

1 software@debian:~/yafeng$ echo "our first git repository" >> file
2 software@debian:~/yafeng$ ls
3 file
4 software@debian:~/yafeng$ git add file
5 software@debian:~/yafeng$ git commit -m "the first file to commit" file
6 [master (root-commit) 0c72641] the first file to commit
7  1 files changed, 1 insertions(+), 0 deletions(-)
8  create mode 100644 file
9 software@debian:~/yafeng$ 

命令解释:

我们在仓库中新建了一个文件file,作为我们的示例文件。

第4行:将file文件的信息添加到git仓库的索引库中,并没有真正添加到库。当然上例中的file文件只是我们的示例,它是一个路径,因此,可以是文件,更可以是目录。

第5行:将索引库中的内容向git仓库进行提交。这步之后文件file才算真正提交到拉git仓库中。双引号中的内容是根据每次修改的不同内容,由我们自己去填写的

 

3.在本地仓库添加一个远程仓库,并将本地的master分支跟踪到远程分支

1 software@debian:~/yafeng$ git remote add origin ssh://software@172.16.0.30/~/yafeng/.git
2 software@debian:~/yafeng$ git push origin master
3 software@172.16.0.30's password: 
4 Everything up-to-date
5 software@debian:~/yafeng$ 

命令注释:

第1行:在本地仓库添加一个远程仓库

第2行:将本地master分支跟踪到远程分支,在git仓库建立之初就会有一个默认的master分支

 

---------------------------------------------------------------------------------------------

 

Git的杀手级功能之一(注意是之一,也就是后面还有之二,之三……):远程仓库。

 

Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。

实际情况往往是这样,找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。

 

完全可以自己搭建一台运行Git的服务器,不过现阶段,为了学Git先搭个服务器绝对是小题大作。好在这个世界上有个叫GitHub的神奇的网站,从名字就可以看出,这个网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库。

在继续阅读后续内容前,请自行注册GitHub账号。由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:

第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

$ ssh-keygen -t rsa -C "461514274@qq.com"

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

第2步:登陆GitHub,点击头像旁的下拉列表,选择“Account settings”,“SSH and GPG Keys”页面:

 

然后,点“New SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

 

 

 点“Add SSH Key”,你就应该看到已经添加的Key:

 

 

为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。

当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

最后友情提示,在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放进去。

如果你不想让别人看到Git库,有两个办法,一个是交点保护费,让GitHub把公开的仓库变成私有的,这样别人就看不见了(不可读更不可写)。另一个办法是自己动手,搭一个Git服务器,因为是你自己的Git服务器,所以别人也是看不见的。这个方法我们后面会讲到的,相当简单,公司内部开发必备。

确保你拥有一个GitHub账号后,我们就即将开始远程仓库的学习。

 

添加远程库

现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。

 

首先,登陆GitHub,然后,在右上角找到“New repository”按钮,创建一个新的仓库:

 

 

在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:

 

 

目前,在GitHub上的这个studygit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。

现在,我们根据GitHub的提示,在本地的studygit仓库下运行命令:

$ git remote add origin https://github.com/wangmingshun/studygit.git

请千万注意,把上面的wangmingshun替换成你自己的GitHub账户名,否则,你在本地关联的就是我的远程库,关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

下一步,就可以把本地库的所有内容推送到远程库上,按照步骤会提示输入用户名和密码:

$ git push -u origin master
Counting objects: 40, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (30/30), done.
Writing objects: 100% (40/40), 3.17 KiB | 0 bytes/s, done.
Total 40 (delta 6), reused 0 (delta 0)
To https://github.com/wangmingshun/studygit.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

 

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样:

 

 从现在起,只要本地作了提交,就可以通过命令:

$ git push origin master

把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!

 

SSH警告

当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:

The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?

这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。

Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:

Warning: Permanently added 'github.com' (RSA) to the list of known hosts.

 

这个警告只会出现一次,后面的操作就不会有任何警告了。

 

小结

要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git

关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

 

分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步,真是太方便了!

 

 

 

从远程库克隆

上面我们讲了先有本地库,后有远程库的时候,如何关联远程库。

现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。

 

首先,登陆GitHub,创建一个新的仓库,名字叫downloadgit

 

 

 我们勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件。创建完毕后,可以看到README.md文件:

 

 

现在,远程库已经准备好了,下一步是用命令git clone克隆一个本地库:

$ git clone git@github.com:wangmingshun/downloadgit.git
Cloning into 'downloadgit'...
The authenticity of host 'github.com (192.30.252.122)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.252.122' (RSA) to the list of known hosts.
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
Checking connectivity... done.

注意把Git库的地址换成你自己的,然后进入downloadgit目录看看,已经有README.md文件了。

 

如果有多个人协作开发,那么每个人各自从远程克隆一份就可以了。

你也许还注意到,GitHub给出的地址不止一个,还可以用https://github.com/wangmingshun/downloadgit.git这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。

使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https

小结

要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。

 

Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。

 

  • 大小: 125.9 KB
  • 大小: 96.6 KB
  • 大小: 99.2 KB
  • 大小: 148.7 KB
  • 大小: 113.2 KB
  • 大小: 95 KB
  • 大小: 95.2 KB
分享到:
评论

相关推荐

    git自动更新远程仓库工具

    当你运行`git clone --mirror <remote-url>`时,你会得到一个只读的仓库,它会复制远程仓库的所有数据,包括历史提交和分支信息。 然而,当远程仓库有新的提交时,你需要手动运行`git fetch`来获取这些更新。对于...

    Git如何修改远程仓库地址

    你可以添加新的远程仓库(`git remote add <name> <url>`),重命名远程仓库(`git remote rename <oldname> <newname>`),或者删除不再使用的远程仓库(`git remote rm <name>`)。同时,可以通过 `git fetch` 和 ...

    linux添加远程仓库,Git创建远程仓库实例.docx

    4. 添加远程仓库:使用 `git remote add origin` 指令添加远程仓库 五、实例创建一个文档推送到远程仓库上 下面是一个简单的实例,演示如何创建一个文档并推送到远程仓库上: 1. 创建一个文件:使用 `vi test.txt...

    使用gogs创建Git远程仓库

    在项目根目录下,使用`git init`命令初始化Git仓库,然后通过`git remote add origin <你的仓库URL>`将远程仓库添加为origin。这里的URL通常为`http://yourserver:3000/你的用户名/仓库名.git`或`ssh://git@your...

    用git实现从本地项目添加到远程仓库

    1. 使用命令`git remote add origin <remote-repo-url>`将本地仓库与远程仓库关联。 - **命令示例**: `git remote add origin https://github.com/xuatcc/owncloud.git` 2. 如果关联失败,检查远程仓库URL是否正确...

    git分支,本地仓库,远程仓库

    5. 将本地仓库与远程仓库关联:使用`git remote add origin <远程仓库URL>`命令添加远程仓库。在IDE中,可以通过图形界面完成这一操作。 6. 将本地仓库的内容推送到远程仓库:通过`git push -u origin master`命令...

    git使用教程,学会使用git以及github远程仓库操作

    Git使用教程,学会使用git以及github远程仓库操作 本资源提供了一个详细的Git使用教程,涵盖了Git的基本概念、安装、配置、创建本地仓库、关联远程分支、删除远程分支关联、删除分支、git stash、git reset、git ...

    Git远程仓库使用方法

    复制远程仓库的URL后,在终端中使用`git remote add`命令将本地仓库与远程仓库关联。`origin`是默认的远程仓库别名,你可以根据需要更改。命令格式如下: ```bash git remote add origin 远程仓库URL ``` **4. 提交...

    Git常用的33个命令

    基础命令: 设置用户信息:git config --global user.name "itcast...git remote add [shortname] [url]:添加远程仓库 git clone [url]:从远程仓库克隆 git pull [shortname] [branchname]:从远程仓库拉取 git push

    初学者必看,git同步本地代码到远程仓库

    最后,使用 `git push` 将这些更改推送到远程仓库的 `master` 分支。首次推送时,需要指定 `origin master`: ```bash git push origin master ``` 之后的推送,只需执行 `git push` 即可。 在开始这个过程之前,...

    利用Git远程分支合并开发python项目

    * `git remote show <远程仓库引用>`:查看指定远程仓库引用的详细信息 实践应用 下面是一个实践应用的示例,演示如何使用 Git 远程分支合并开发 Python 项目。 首先,克隆一个已经存在的 GitHub 仓库: ```bash...

    git批量拉取项目的脚本,简便快捷

    包括但不限于分支管理(如`git branch`, `git checkout`, `git merge`, `git rebase`)、提交历史查看(`git log`)、回退版本(`git reset`, `git revert`)、标签管理(`git tag`)、远程仓库管理(`git remote`)...

    git如何建立本地仓库与远程GitHub仓库的链接

    git remote add origin 远程仓库地址 建议:远程仓库是新建的仓库,并且里面没有任何文件(这样可以防止出现冲突) (3)使用下面命令可以查看是否链接成功 git remote -v (4)链接成功后,就可以使用git push等...

    git

    - 可以通过`git remote add [别名] [URL]`绑定其他远程仓库。 - 示例:`$ git remote add originwtxiaogit @192.9.200.129:android_tpm.git` 3. **删除远程仓库**: - 使用`git remote remove [别名]`命令删除...

    如何远程上传自己的文件到github仓库:

    7、命令" git push -u 仓库名 master ":把本地仓库的文件上传到远程仓库。 8、如果你想验证YYY仓库是否添加,可以用命令" git remote -v "。 如果你想删除YYY仓库,可以用" git remote remove 仓库名

    Git命令使用大全,包括:仓库创建、常用命令、分支管理、查看历史、标签以及远程仓库

    - `git remote`: 添加、查看或删除远程仓库。`git remote add origin git@github.com:username/repo.git`添加名为origin的远程仓库。 - `git fetch`: 从远程仓库拉取数据,但不合并。 - `git pull`: 拉取并合并...

    Git 常用命令清单

    首先,Git基本工作区分为四个部分,分别是工作区(Workspace)、暂存区(Index/Staged)、本地仓库(Repository)和远程仓库(Remote)。工作区是实际编辑文件的地方,暂存区用于暂存改动,准备提交到本地仓库,本地...

    git命令整理的简单使用

    连接远程仓库:git remote add origin git@github.com:yourName/repositoryname.git 从远程仓库pull文件:git pull origin master 提交代码到暂存: git add . (提交暂存) 提交代码: git commit -m (注释什么...

    清理本地和远程maven仓库repository中的无效或者垃圾版本文件lastUpdated、_remote等

    在项目中,使用maven加载依赖仓库时,有时因为网络卡顿或者配置pom.xml时,若下载不完整就会出现lastUpdated等文件。这些文件占内存,项目加载时耗时... 3、使用方法2:在远程仓库repository中使用linux命令执行工具。

Global site tag (gtag.js) - Google Analytics