3. 添加现有工程到远程仓库

本小节的目标是将我们已经提交了两次的 my_project 项目 放入码云上建立的远程仓库,连同两次提交信息一起同步到远程仓库。同时学习 Git 远程仓库的推送和拉取操作。

现有的 my_project 项目在本地已经有了 master 分支,并有了两次提交。当前这个本地仓库并没有添加任何远程仓库,当你使用 git remote 命令显示时也是显示空的内容。

要将此本地仓库创建一个相同的远程仓库有几种做法。

  1. 我们利用本地的仓库 .git 文件夹创建一个远程仓库。
  2. 我先在云平台上创建一个空的,没有分支和提交的最原始的远程仓库,然后将本地仓库的所有分支和推送到远程仓库,实现远程仓库的同步。

本小节我们使用第二种方法来实现远程仓库的建立。首先我们要在码云平台上创建空的仓库。

在创建空的远程仓库前我们需要在码云平台注册账号,其网址是:https://gitee.com/

建立码云平台的仓库

1、 登录码云平台账户

创建并登录码云账户即可。

2、 选择创建仓库

点击新建仓库,新建一个远程仓库,如下图所示:

3、 填写新仓库信息

其中最重要的就是仓库的存储路径,这里填写 my_git_project,此路径最好选择只用英文填写。如下图所示:

然后点击创建

4、 创建完毕,显示最终的仓库信息

如下图所示,最终创建远程仓库的地址是 https://gitee.com/weimz/my_git_project.git

本页面还给出了对于已有本地仓库用户如何导入本地仓库到此远程仓库的方法如下:

cd existing_git_repo
git remote add origin https://gitee.com/weimz/my_git_project.git
git push -u origin "master"

这里我们本地仓库的路径是 ~/my_project 不是 existing_git_repo

5、 导入本地仓库到码云仓库

我们改写上述命令如下:

cd my_project
git remote add origin https://gitee.com/weimz/my_git_project.git
git push -u origin "master"

在我的电脑上的执行后的结果如下:

weimingze@mzstudio:~$ cd my_project
weimingze@mzstudio:~/my_project$ git remote add origin https://gitee.com/weimz/my_git_project.git
weimingze@mzstudio:~/my_project$ git push -u origin "master"
Username for 'https://gitee.com': weimz
Password for 'https://weimz@gitee.com':
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 2 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (7/7), 676 bytes | 225.00 KiB/s, done.
Total 7 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [1.1.23]
remote: Set trace flag 6d40f28d
To https://gitee.com/weimz/my_git_project.git
 * [new branch]      master -> master
branch 'master' set up to track 'origin/master'.
weimingze@mzstudio:~/my_project$ git remote
origin
weimingze@mzstudio:~/my_project$ git remote -v
origin  https://gitee.com/weimz/my_git_project.git (fetch)
origin  https://gitee.com/weimz/my_git_project.git (push)

现在我们已经完成将本地仓库推送到了远程仓库,此时的远程仓库的内容和本地仓库保持一致。你可以通过链接地址:https://gitee.com/weimz/my_git_project/ 查看远程仓库的内容和提交信息。你也可以通过 git clone https://gitee.com/weimz/my_git_project.git 命令来获取此仓库的一个副本。因为你没有加入到我们开发团队,此仓库对你是只读的。从网页中你可以看到项目的中两次提交信息和每次提交的内容,如下图所示:

上面的命令 git push -u origin "master" 是将本地分支 "master"推送本地的提交到远程仓库 origin。其中 -u 选项是建立本地分支与远程分支的追踪关系,设置后,以后可以直接使用 git pushgit pull 而不需要指定远程仓库和分支名。关于 git pushgit pull 命令我们下节课再详细讲解。

提示:

用同样的方法,可以将你的本地仓库导入到你自己的 Git 服务器或 Github 代码托管平台。

实验:

  1. 在码云上创建仓库,然后将这个仓库克隆到本地。