博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Git 远程仓库(分布式版本控制系统)
阅读量:5972 次
发布时间:2019-06-19

本文共 4951 字,大约阅读时间需要 16 分钟。

前言

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

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 -vbakkdoor  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    git@github.com:mojombo/grit.git (fetch)origin    git@github.com: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 -vorigin  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 pbremote: 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 remoteoriginpaul
      • 值得注意的是这同样也会修改你的远程分支名字。那些过去引用 pb/master 的现在会引用 paul/master。

7、远程仓库的移除

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

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

转载地址:http://rwzox.baihongyu.com/

你可能感兴趣的文章
程序员全国不同地区,微信(面试 招聘)群。
查看>>
【干货】界面控件DevExtreme视频教程大汇总!
查看>>
Java小细节
查看>>
poj - 1860 Currency Exchange
查看>>
洛谷 P2486 BZOJ 2243 [SDOI2011]染色
查看>>
数值积分中的辛普森方法及其误差估计
查看>>
Web service (一) 原理和项目开发实战
查看>>
跑带宽度多少合适_跑步机选购跑带要多宽,你的身体早就告诉你了
查看>>
Javascript异步数据的同步处理方法
查看>>
iis6 zencart1.39 伪静态规则
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>
Linux备份ifcfg-eth0文件导致的网络故障问题
查看>>
2018年尾总结——稳中成长
查看>>
通过jsp请求Servlet来操作HBASE
查看>>
Shell编程基础
查看>>
Shell之Sed常用用法
查看>>
Centos下基于Hadoop安装Spark(分布式)
查看>>
mysql开启binlog
查看>>
设置Eclipse编码方式
查看>>
分布式系统唯一ID生成方案汇总【转】
查看>>