Git建立远程代码仓库和本地代码仓库

使用Git管理代码,需要有两个仓库。一个是远程代码仓库,一个是本地代码仓库。

远程仓库是用来托管代码的平台,比如说Github,GitLab,Gerrit,码云Gitee等,这些都是开源的代码仓库系统。因此,很多公司都会自己搭GitLab,自己搭Gerrit。当然了,这些开源系统的功能并不限于代码仓库,还有代码评审等。

本地仓库是开发者(程序员)本地(开发环境)的代码存放仓库,其实就是一个文件夹,通过git来与远程仓库的代码建立连接,开发者在本地编写代码,然后提交到远程代码仓库。

一、本地配置用户名和密码

1. 本文以windows为例,安装好 git , 在本地右键点击,进入 Git Bash 界面,使用命令 git config --list 或 git config -l 查看当前的 git 配置。

git config --list

刚安装 git 时,配置里面是没有 user.name 和 user.email 的,但是向远程仓库提交代码需要使用 user.name 和 user.email ,所以先配置。

2.配置用户名和邮箱,配置的用户名和邮箱会被用来生成 RSA 公钥和私钥。

配置用户名命令:

git config --global user.name "mygit"

配置邮箱命令:

git config --global user.email "mygit@git.com"

其中的用户名和邮箱填自己的,也可以自定义一个用户名和邮箱。

--global 表示配置的用户名和邮箱是全局的,表示当前环境中所有分支都可以使用,也可以不指定--global。

如果要专门查看配置中的 user.name 或 user.email ,可以使用命令 git config user.name 或 git config user.email 来查看。

二、生成RSA公钥和私钥

1.配置好用户和邮箱后,输入 ssh-keygen 命令生成 ssh 的RSA公钥和私钥。

ssh-keygen

在执行的过程中,会询问生成的公钥和私钥存放在哪,确认生成等,一路回车就可以了,直到运行结束,如下图。

2.生成的公钥和私钥默认保存在当前登陆系统的用户的家目录下。里面有一个 .ssh 的隐藏文件夹,里面的 id_rsa 文件是私钥, id_rsa.pub 文件是公钥。

打开 id_rsa.pub 文件,复制公钥,在后面的步骤中,我们会将公钥配置到远程代码仓库中。

3. 当然,也可以直接在图形界面的文件夹中找到私钥和公钥的文件,用记事本打开,复制公钥。

三、配置远程公钥

1. 以 Github 为例,先注册一个 Github 账号,然后点击右上方的个人头像,再点击 “Settings” 进入设置页面。

2. 在 “Settings” 页面点击 “SSH and GPG keys” 进入 SSH keys 设置页面。

3. 点击 “New SSH key” 添加 SSH key, SSH key 是可以配置很多个的,即使同一环境中,也可以配置多个 SSH key 。

4. 将前面生成的公钥粘贴到 Key 里,可以给这个公钥定义一个标题,然后点击 “Add SSH key”按钮。

5. 如下图,则表示公钥已经添加成功,我们可以使用这个公钥来提交和拉取代码。

四、建立远程代码仓库

1. 远程代码仓库是帮助我们存放和托管代码的,当我们配置好公钥后,就可以在 Github 上创建项目了。

每一个项目文件夹相当于一个代码仓库。所以新建仓库可以理解为新建一个项目。

如下,我们新建一个 GitProject 项目,Description 可填也可不填,Public 和 Private 选择 Pullic 公开。初始化 README 文件可选可不选,.gitIgnore文件里面写的是本地向远程仓库提交代码时忽略的文件,如 Python 中的 .pyc 文件, 也是可填可不填。

填写好项目的设置后,点击 Create repository 创建项目。

2. 创建好项目后,就相当于在 Github 上有了一个叫 GitProject 的代码仓库。

现在这个仓库是新创建的,我们还没有提交任何的代码,所以里面只有一个 README 文件。

为了使远程仓库和本地仓库建立连接,我们需要将远程仓库的代码克隆到本地。点击右方的 Clone or download ,然后在下拉的菜单中点击 Use SSH 切换成 Clone with SSH,然后点击右下方的复制按钮,复制克隆代码的路径,后面的步骤会 clone 这个仓库的代码到本地。

五、建立本地代码仓库

1. 到本地电脑中,找一个代码仓库存放的位置,如桌面 Desktop ,在 Desktop 创建一个文件夹 git_project ,准备将本地代码存放在这个文件夹中。

2. 进入 git_project 文件夹,初始化本地代码仓库。

初始化命令:

git init

这个步骤很简单,但很容易被遗忘,在执行 git init 前,git_project 是一个普通的文件夹,执行 git init 后,这个文件夹就可以当成一个本地代码仓库使用了。因为初始化后,会在 git_project 中生成一个隐藏文件夹 .git 。

初始化仓库后,拉取在 Github 上创建的 GitProject 项目的代码到本地仓库中。

拉取命令为 git clone ... ,拉取的地址是在 Github 复制的 Clone with SSH 的地址。

3. 现在是本地仓库第一次拉取代码,中间会询问输入 yes/no ,输入yes ,很快代码就拉取成功了,这时候当前目录下有一个与远程仓库中的项目名相同的 GtiProject 文件夹,里面的代码与远程仓库是一样的。

现在,远程代码仓库和本地代码仓库都已经创建好,并且代码保持一致,已经实现了代码的管理。

进入 GtiProject 中,可以使用 git branch 可以查看当前处于的分支,一开始都是 master ,可以使用 git  status 查看当前的代码状态。

完成以上的配置后,代码已经使用 Git 管理起来了,后面就可以在本地编程,然后提交到远程仓库,可以对代码进行版本管理,分支管理等。

Git建立远程代码仓库和本地代码仓库相关推荐

  1. TortoiseGit - git小乌龟可视化管理Gitee和本地代码仓库

    TortoiseGit - git小乌龟可视化管理Gitee和本地代码仓库 一.​安装工具 1.安装 git 2.安装 TortoiseGit 二.工具使用 1.准备工作: 2.创建版本库 3.拉取目 ...

  2. git更新远程代码到本地仓库的命令

    方式一 (远程代码下载到本地新建分支:对比区别后在合并) 查看远程分支 git remote -v $ git remote -v origin https://github.com/shangshe ...

  3. git 更新远程代码到本地仓库

    git fetch 的简单用法:更新远程代码到本地仓库 方式一 (远程代码直接下载合并到本地) 1. 查看远程仓库 $ git remote -v eoecn https://github.com/e ...

  4. eclipse git 取远程代码_IDEA中的Git操作,看这一篇就够了!

    大家在使用Git时,都会选择一种Git客户端,在IDEA中内置了这种客户端,可以让你不需要使用Git命令就可以方便地进行操作,本文将讲述IDEA中的一些常用Git操作. SpringBoot实战电商项 ...

  5. eclipse git 取远程代码_【JAVA】Eclipse中使用git进行pull远程代码

    当使用eclipse或者MyEclipse进行pull远程代码的时候,或者github的代码的时候报如下错误代码: 代表我们没有配置我们的Git地址,这里我教大家配置一下.首先下面是错误代码: The ...

  6. Git建立远程/本地服务器和git命令的使用

    Github 远程仓库 1.github.com 注册账户 2.在github上创建仓库 3.生成本地ssh key [root@localhost ~]# ssh-keygen -t rsa -C ...

  7. git 拉远端代码强制覆盖本地代码

    想要拉远端强制覆盖本地,试过git pull --force ,还是会提示需要commit 下面的方法可以强制覆盖,留着以免忘记 //只是下载代码到本地,不进行合并操作 git fetch --all ...

  8. Git提交远程代码时出现remote Incorrect username or password ( access token )

    在使用Git进行项目代码提交的最后一步操作的时候,出现了一个问题,remote: Incorrect username or password ( access token ) git出错截图: 造成 ...

  9. git pull 远程代码仓库未同步更新到本地?

    1.查看本地和远程仓库分支是否一致: git 查看本地和远程分支:(颜色区分,标红的是远程分支) git branch 2.排查是否处于git clone 的目录下 git remote --verb ...

最新文章

  1. 独家 | R语言中K邻近算法的初学者指南:从菜鸟到大神(附代码&链接)
  2. 面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别在哪里?请根据自己的理解简明扼要的回答。...
  3. html egg mac os 10.7,HTML Egg
  4. u3d ab包 循环依赖_为什么要保持软件包依赖项自由循环的五个原因
  5. matlab 画箱线图boxplot简单用法
  6. 谈Flash中的鼠标响应
  7. 计算机组成原理组合逻辑控制器实验报告,计算机组成原理实验报告—认识性实验 华北电力大学.doc...
  8. php对html加密解密,PHP Mcrypt和HTML5加密API加密/解密
  9. 澳大利亚超市巨头考虑设专门网站 方便代购买奶粉
  10. [转载]压岁钱年年涨的行情不要太纠结
  11. Flutter实战之Dio入门使用
  12. 移动html5 滑动 zepto,移动端使用zepto编写的滑动事件
  13. 【Android】安卓开发中的MVP架构模式与应用实例
  14. 微信小程序路线规划导航并唤醒第三方导航app
  15. easyexcel导入时读不到数据_EasyExcel快速读写Excel数据
  16. html help文档制作,HTML Help Workshop(文件制作工具)
  17. 讲讲BW/4 HANA和BW on HANA的区别
  18. Android消息机制(Handler机制) - 线程的等待和唤醒
  19. 【支小蜜智慧食堂】随时查账单,解决学校食堂点餐效率低问题
  20. 北京最大耐克体验店开业;HH中国首家旗舰店在上海开业 | 美通社头条

热门文章

  1. git clone 报错 Clone failed: Authentication failed for
  2. 移动硬盘提示无法访问使用驱动器中的光盘之前需要格式化,里面的数据怎么恢复...
  3. 一步步带你实现简版 ButterKnife
  4. TypeScript + React 学习render props
  5. 理解 Delphi 的类(十) - 深入方法[27] - 递归函数: 简单示例
  6. 《高质量c++/c编程指南》学习摘要
  7. 守护进程实现时间服务器
  8. Nginx的UDP健康检查
  9. Docker 使用 docker push 命令 推送本地镜像到远程DockerHub仓库服务器
  10. 回调、匿名函数、闭包