iOS - Git 远程仓库(分布式版本控制系统)

前言

  • 远程仓库是指托管在因特网或其他网络中的你的项目的版本库。你可以有好几个远程仓库,通常有些仓库对你只读,有些则可以读写。

1、查看远程仓库

  • 如果想查看你已经配置的远程仓库服务器,可以运行 git remote 命令。它会列出你指定的每一个远程服务器的简写。如果你已经克隆了自己的仓库,那么至少应该能看到 origin,这是 Git 给你克隆的仓库服务器的默认名字。

    $ git remote
    origin
  • 你也可以指定选项 -v,会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL。
    $ git remote -v
    origin  https://github.com/schacon/ticgit (fetch)
    origin  https://github.com/schacon/ticgit (push)
    • 如果你的远程仓库不止一个,该命令会将它们全部列出。例如,与几个协作者合作的,拥有多个远程仓库的仓库看起来像下面这样。

      $ git remote -v
      bakkdoor  https://github.com/bakkdoor/grit (fetch)
      bakkdoor  https://github.com/bakkdoor/grit (push)
      cho45     https://github.com/cho45/grit (fetch)
      cho45     https://github.com/cho45/grit (push)
      defunkt   https://github.com/defunkt/grit (fetch)
      defunkt   https://github.com/defunkt/grit (push)
      koke      git://github.com/koke/grit.git (fetch)
      koke      git://github.com/koke/grit.git (push)
      origin    [email protected]:mojombo/grit.git (fetch)
      origin    [email protected]:mojombo/grit.git (push)
  • 如果想要查看某一个远程仓库的更多信息,可以使用 git remote show [remote-name] 命令。
    # git remote show [remote-name]
    $ git remote show origin
    • 如果想以一个特定的缩写名运行这个命令,例如 origin,会得到像下面类似的信息。

      $ git remote show origin
      * remote origin
        Fetch URL: https://github.com/schacon/ticgit
        Push  URL: https://github.com/schacon/ticgit
        HEAD branch: master
        Remote branches:
          master                               tracked
          dev-branch                           tracked
        Local branch configured for 'git pull':
          master merges with remote master
        Local ref configured for 'git push':
          master pushes to master (up to date)
    • 它同样会列出远程仓库的 URL 与跟踪分支的信息。这些信息非常有用,它告诉你正处于 master 分支,并且如果运行 git pull,就会抓取所有的远程引用,然后将远程 master 分支合并到本地 master 分支。它也会列出拉取到的所有远程引用。
    • 如果你是 Git 的重度使用者,那么还可以通过 git remote show 看到更多的信息。
      $ git remote show origin
      * remote origin
        URL: https://github.com/my-org/complex-project
        Fetch URL: https://github.com/my-org/complex-project
        Push  URL: https://github.com/my-org/complex-project
        HEAD branch: master
        Remote branches:
          master                           tracked
          dev-branch                       tracked
          markdown-strip                   tracked
          issue-43                         new (next fetch will store in remotes/origin)
          issue-45                         new (next fetch will store in remotes/origin)
          refs/remotes/origin/issue-11     stale (use 'git remote prune' to remove)
        Local branches configured for 'git pull':
          dev-branch merges with remote dev-branch
          master     merges with remote master
        Local refs configured for 'git push':
          dev-branch                     pushes to dev-branch                     (up to date)
          markdown-strip                 pushes to markdown-strip                 (up to date)
          master                         pushes to master                         (up to date)
    • 这个命令列出了当你在特定的分支上执行 git push 会自动地推送到哪一个远程分支。它也同样地列出了哪些远程分支不在你的本地,哪些远程分支已经从服务器上移除了,还有当你执行 git pull 时哪些分支会自动合并。

2、添加远程仓库

  • 运行 git remote add [shortname] [url] 添加一个新的远程 Git 仓库,同时指定一个你可以轻松引用的简写。

    # git remote add [shortname] [url]
    $ git remote add pb https://github.com/paulboone/ticgit
    $ git remote -v
    origin  https://github.com/schacon/ticgit (fetch)
    origin  https://github.com/schacon/ticgit (push)
    pb  https://github.com/paulboone/ticgit (fetch)
    pb  https://github.com/paulboone/ticgit (push)
    • 现在你可以在命令行中使用字符串 pb 来代替整个 URL。例如,如果你想拉取 Paul 的仓库中有但你没有的信息,可以运行 git fetch pb

      $ git fetch pb
      remote: Counting objects: 43, done.
      remote: Compressing objects: 100% (36/36), done.
      remote: Total 43 (delta 10), reused 31 (delta 5)
      Unpacking objects: 100% (43/43), done.
      From https://github.com/paulboone/ticgit
       * [new branch]      master     -> pb/master
       * [new branch]      ticgit     -> pb/ticgit
    • 现在 Paul 的 master 分支可以在本地通过 pb/master 访问到 - 你可以将它合并到自己的某个分支中,或者如果你想要查看它的话,可以检出一个指向该点的本地分支。

3、从远程仓库中抓取

  • 从远程仓库中获得数据,可以执行 git fetch [remote-name]。这个命令会访问远程仓库,从中拉取所有你还没有的数据。

    # git fetch [remote-name]
    $ git fetch origin
    • 执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。
    • 必须注意 git fetch 命令会将数据拉取到你的本地仓库,它并不会自动合并或修改你当前的工作,当准备好时你必须手动将其合并入你的工作。
    • 如果你使用 clone 命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写。所以,git fetch origin 会抓取克隆(或上一次抓取)后新推送的所有工作。

4、从远程仓库中拉取

  • 如果你有一个分支设置为跟踪一个远程分支,可以使用 git pull 命令来自动的抓取然后合并远程分支到当前分支。

    $ git pull
    • 运行 git pull 通常会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支。
    • 默认情况下,git clone 命令会自动设置本地 master 分支跟踪克隆的远程仓库的 master 分支(或不管是什么名字的默认分支)。

5、推送到远程仓库

  • 当你想分享你的项目时,必须将其推送到上游。这个命令很简单:git push [remote-name] [branch-name]。当你想要将 master 分支推送到 origin 服务器时(再次说明,克隆时通常会自动帮你设置好那两个名字),那么运行这个命令就可以将你所做的备份到服务器

    # git push [remote-name] [branch-name]
    $ git push origin master
    • 只有当你有所克隆服务器的写入权限,并且之前没有人推送过时,这条命令才能生效。
  • 当你和其他人在同一时间克隆,他们先推送到上游然后你再推送到上游,你的推送就会毫无疑问地被拒绝。你必须先将他们的工作拉取下来并将其合并进你的工作后才能推送。

6、远程仓库的重命名

  • 如果想要重命名引用的名字可以运行 git remote rename 去修改一个远程仓库的简写名。

    # git remote rename [old-shortname] [new-shortname]
    $ git remote rename pb paul
    • 例如,想要将 pb 重命名为 paul,可以用 git remote rename 这样做。

      $ git remote rename pb paul
      $ git remote
      origin
      paul
    • 值得注意的是这同样也会修改你的远程分支名字。那些过去引用 pb/master 的现在会引用 paul/master。

7、远程仓库的移除

  • 如果因为一些原因想要移除一个远程仓库,可以使用 git remote rm

    # git remote rm [shortname]
    $ git remote rm paul
    $ git remote
    origin

原文地址:https://www.cnblogs.com/QianChia/p/8537123.html

时间: 2024-08-25 12:00:25

iOS - Git 远程仓库(分布式版本控制系统)的相关文章

iOS - Git 分支(分布式版本控制系统)

前言 几乎所有的版本控制系统都以某种形式支持分支.使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线.在很多版本控制系统中,这是一个略微低效的过程--常常需要完全创建一个源代码目录的副本.对于大项目来说,这样的过程会耗费很多时间. 有人把 Git 的分支模型称为它的"必杀技特性",也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出.为何 Git 的分支模型如此出众呢?Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分

iOS - Git 安装(分布式版本控制系统)

1.在 Windows 上安装 在 Windows 上安装 Git 也有几种安装方法. 官方版本可以在 Git 官方网站下载,打开下载会自动开始.要注意这是一个名为 Git for Windows 的项目(也叫做 msysGit),和 Git 是分别独立的项目,更多信息请访问 github msysgit. 另一个简单的方法是安装 GitHub for Windows.该安装程序包含图形化和命令行版本的 Git.它也能支持 Powershell,提供了稳定的凭证缓存和健全的 CRLF 设置. 2

iOS - Git 配置(分布式版本控制系统)

1.Mac Git 配置文件 既然已经在系统上安装了 Git,你会想要做几件事来定制你的 Git 环境.每台计算机上只需要配置一次,程序升级时会保留配置信息.你可以在任何时候再次通过运行命令来修改它们. Git 自带一个 git config 的工具来帮助设置控制 Git 外观和行为的配置变量.这些变量存储在三个不同的位置: 1> /etc/gitconfig 文件: 包含系统上每一个用户及他们仓库的通用配置.如果使用带有 --system 选项的 git config 时,它会从此文件读写配置

iOS - Git 别名(分布式版本控制系统)

1.Git 别名 Git 并不会在你输入部分命令时自动推断出你想要的命令.如果不想每次都输入完整的 Git 命令,可以通过 git config 文件来轻松地为每一个命令设置一个别名.这里有一些例子你可以试试. $ git config --global alias.co checkout $ git config --global alias.br branch $ git config --global alias.ci commit $ git config --global alias.

Centos 7.X 部署基于Git&Gitolite的分布式版本控制系统

1.简介 1.1 git 简介 Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了.Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码.2005年,为了解决Linux系统的源码开发管理这一问题,Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git,目前世界上最先进的分布式版本控制系统. 2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无

分布式版本控制系统GIT的使用

一.什么是Git Git是一个分布式版本控制系统,Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异(如CVS.Subversion等).而Git并不保存这些前后变化的差异数据.Git更像是把变化的文件作快照后记录在一个微型的文件系统中.每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引.若文件没有变化,Git不会再次保存,而只对上传保存的快照做一次连接,即若文件未变化则指向上

分布式版本控制系统(git远程管理)

1,远程仓库概念 在上篇博文中,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,再也不用担心文件备份或者丢失的问题了. 可是有用过集中式版本控制系统SVN的朋友会站出来说,这些功能在SVN里早就有了,没看出Git有什么特别的地方. Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上.怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后可以"克隆"这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分. 你肯定会想,至少需要两台机器才能玩远程库不

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

http://zhidao.baidu.com/link?url=NSYPiSvtGTMoqMA9vt68FRRF8WbfYVmwWeMh47_2lkp0K3jFMl--1Co1tg1R4VshTQV2De1JeG-fh3Ezu5j-3q Git是什么?Git是目前世界上最先进的分布式版本控制系统(没有之一).Git有什么特点?简单来说就是:高端大气上档次!那什么是版本控制系统?如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:想删除一个段落,又怕将来想恢复找不回来怎么办?

Git是目前世界上最先进的分布式版本控制系统

一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器.集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了. Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库