`
wbj0110
  • 浏览: 1610626 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

远程仓库的使用

    博客分类:
  • Git
Git 
阅读更多

要参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库。远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写。同他人协作开发某个项目时,需要管理这些远程仓库,以便推送或拉取数据,分享各自的工作进展。 管理远程仓库的工作,包括添加远程库,移除废弃的远程库,管理各式远程库分支,定义是否跟踪这些分支,等等。本节我们将详细讨论远程库的管理和使用。

查看当前的远程库

要查看当前配置有哪些远程仓库,可以用 git remote 命令,它会列出每个远程库的简短名字。在克隆完某个项目后,至少可以看到一个名为 origin 的远程库,Git 默认使用这个名字来标识你所克隆的原始仓库:

$ git clone git://github.com/schacon/ticgit.git
Cloning into 'ticgit'...
remote: Reusing existing pack: 1857, done.
remote: Total 1857 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (1857/1857), 374.35 KiB | 193.00 KiB/s, done.
Resolving deltas: 100% (772/772), done.
Checking connectivity... done.
$ cd ticgit
$ git remote
origin

也可以加上 -v 选项(译注:此为 --verbose 的简写,取首字母),显示对应的克隆地址:

$ git remote -v
origin  git://github.com/schacon/ticgit.git (fetch)
origin  git://github.com/schacon/ticgit.git (push)

如果有多个远程仓库,此命令将全部列出。比如在我的 Grit 项目中,可以看到:

$ cd grit
$ git remote -v
bakkdoor  git://github.com/bakkdoor/grit.git
cho45     git://github.com/cho45/grit.git
defunkt   git://github.com/defunkt/grit.git
koke      git://github.com/koke/grit.git
origin    git@github.com:mojombo/grit.git

这样一来,我就可以非常轻松地从这些用户的仓库中,拉取他们的提交到本地。请注意,上面列出的地址只有 origin 用的是 SSH URL 链接,所以也只有这个仓库我能推送数据上去(我们会在第四章解释原因)。

添加远程仓库

要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行 git remote add [shortname] [url]

$ git remote
origin
$ git remote add pb git://github.com/paulboone/ticgit.git
$ git remote -v
origin  git://github.com/schacon/ticgit.git
pb  git://github.com/paulboone/ticgit.git

现在可以用字符串 pb 指代对应的仓库地址了。比如说,要抓取所有 Paul 有的,但本地仓库没有的信息,可以运行 git fetch pb

$ git fetch pb
remote: Counting objects: 58, done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 44 (delta 24), reused 1 (delta 0)
Unpacking objects: 100% (44/44), done.
From git://github.com/paulboone/ticgit
 * [new branch]      master     -> pb/master
 * [new branch]      ticgit     -> pb/ticgit

现在,Paul 的主干分支(master)已经完全可以在本地访问了,对应的名字是 pb/master,你可以将它合并到自己的某个分支,或者切换到这个分支,看看有些什么有趣的更新。

从远程仓库抓取数据

正如之前所看到的,可以用下面的命令从远程仓库抓取数据到本地:

$ git fetch [remote-name]

此命令会到远程仓库中拉取所有你本地仓库中还没有的数据。运行完成后,你就可以在本地访问该远程仓库中的所有分支,将其中某个分支合并到本地,或者只是取出某个分支,一探究竟。(我们会在第三章详细讨论关于分支的概念和操作。)

如果是克隆了一个仓库,此命令会自动将远程仓库归于 origin 名下。所以,git fetch origin 会抓取从你上次克隆以来别人上传到此远程仓库中的所有更新(或是上次 fetch 以来别人提交的更新)。有一点很重要,需要记住,fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。

如果设置了某个分支用于跟踪某个远端仓库的分支(参见下节及第三章的内容),可以使用 git pull 命令自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支。在日常工作中我们经常这么用,既快且好。实际上,默认情况下 git clone 命令本质上就是自动创建了本地的 master 分支用于跟踪远程仓库中的 master 分支(假设远程仓库确实有 master 分支)。所以一般我们运行 git pull,目的都是要从原始克隆的远端仓库中抓取数据后,合并到工作目录中的当前分支。

推送数据到远程仓库

项目进行到一个阶段,要同别人分享目前的成果,可以将本地仓库中的数据推送到远程仓库。实现这个任务的命令很简单: git push [remote-name] [branch-name]。如果要把本地的 master 分支推送到 origin 服务器上(再次说明下,克隆操作会自动使用默认的 master 和 origin 名字),可以运行下面的命令:

$ git push origin master

只有在所克隆的服务器上有写权限,或者同一时刻没有其他人在推数据,这条命令才会如期完成任务。如果在你推数据前,已经有其他人推送了若干更新,那 你的推送操作就会被驳回。你必须先把他们的更新抓取到本地,合并到自己的项目中,然后才可以再次推送。有关推送数据到远程仓库的详细内容见第三章。

查看远程仓库信息

我们可以通过命令 git remote show [remote-name] 查看某个远程仓库的详细信息,比如要看所克隆的 origin 仓库,可以运行:

$ git remote show origin
* remote origin
  URL: git://github.com/schacon/ticgit.git
  Remote branch merged with 'git pull' while on branch master
    master
  Tracked remote branches
    master
    ticgit

除了对应的克隆地址外,它还给出了许多额外的信息。它友善地告诉你如果是在 master 分支,就可以用 git pull 命令抓取数据合并到本地。另外还列出了所有处于跟踪状态中的远端分支。

上面的例子非常简单,而随着使用 Git 的深入,git remote show 给出的信息可能会像这样:

$ git remote show origin
* remote origin
  URL: git@github.com:defunkt/github.git
  Remote branch merged with 'git pull' while on branch issues
    issues
  Remote branch merged with 'git pull' while on branch master
    master
  New remote branches (next fetch will store in remotes/origin)
    caching
  Stale tracking branches (use 'git remote prune')
    libwalker
    walker2
  Tracked remote branches
    acl
    apiv2
    dashboard2
    issues
    master
    postgres
  Local branch pushed with 'git push'
    master:master

它告诉我们,运行 git push 时缺省推送的分支是什么(译注:最后两行)。它还显示了有哪些远端分支还没有同步到本地(译注:第六行的 caching 分支),哪些已同步到本地的远端分支在远端服务器上已被删除(译注:Stale tracking branches 下面的两个分支),以及运行 git pull 时将自动合并哪些分支(译注:前四行中列出的 issuesmaster 分支)。

远程仓库的删除和重命名

在新版 Git 中可以用 git remote rename 命令修改某个远程仓库在本地的简称,比如想把 pb 改成 paul,可以这么运行:

$ git remote rename pb paul
$ git remote
origin
paul

注意,对远程仓库的重命名,也会使对应的分支名称发生变化,原来的 pb/master 分支现在成了 paul/master

碰到远端仓库服务器迁移,或者原来的克隆镜像不再使用,又或者某个参与者不再贡献代码,那么需要移除对应的远端仓库,可以运行 git remote rm 命令:

$ git remote rm paul
$ git remote
origin

http://git-scm.com/book/zh/Git-%E5%9F%BA%E7%A1%80-%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93%E7%9A%84%E4%BD%BF%E7%94%A8

分享到:
评论

相关推荐

    Git远程仓库使用方法

    Git是世界上最流行的分布式...总的来说,掌握Git的远程仓库使用方法对于团队协作至关重要。通过以上步骤,你可以高效地进行代码共享、版本控制和团队协作。记得定期同步和推送代码,以保持远程仓库与本地仓库的一致性。

    Git远程仓库的使用

    参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库。远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写。...该文档很好的讲解了git的远程仓库的使用。

    使用gogs创建Git远程仓库

    本文将详细介绍如何使用Gogs来创建Git远程仓库。 首先,我们需要下载并安装Gogs。Gogs支持多种操作系统,包括Linux、Windows和macOS。你可以从其官方网站(https://gogs.io/)获取适合你操作系统的最新版本。下载...

    maven 自动发布更新本地和远程仓库

    使用`mvn deploy`命令,项目会被发布到远程仓库。配置`<repository>`或`<snapshotRepository>`元素指定目标远程仓库。 5. **maven-deploy-plugin**: Maven的部署插件负责将项目发布到远程仓库。我们可以自定义其...

    maven配置本地仓库和远程仓库

    设置Maven的本地仓库与远程仓库,还是挺简单的,在maven的conf中的setting.xml中配置

    上传jar包到远程仓库

    本主题将深入探讨如何将自定义的jar包上传到远程仓库,以供其他项目或团队成员引用。首先,我们需要理解几个关键概念: 1. **本地仓库**: Maven在本地磁盘上创建的一个默认目录,用于存储下载的依赖和构建的项目...

    git自动更新远程仓库工具

    Git是世界上最流行的分布式版本控制系统,它允许开发者跟踪和管理代码变更。在开发团队协作中,保持本地...不过,使用任何自动化工具时都需要注意安全,确保你有权访问并更新列出的远程仓库,避免造成不必要的问题。

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

    Linux 添加远程仓库是指在 Linux 系统上使用 Git 创建一个远程仓库实例,用于存储和管理代码仓库。下面是创建远程仓库的思路和步骤: 一、远程仓库所需要的指令 在使用 Git 创建远程仓库之前,需要了解一些基本的 ...

    本地项目如何上传到码云远程仓库

    1. **添加远程仓库**:执行`git remote add origin 远程仓库地址`命令,这里的`origin`是指向远程仓库的别名,默认情况下我们都是使用`origin`。 2. **推送本地仓库到远程仓库**:执行`git push -u origin main`...

    Maven之远程仓库的配置详解

    在Maven的构建管理中,远程仓库扮演着至关重要的角色,因为它们允许开发者访问除了默认中央仓库之外的自定义或组织内部的构件。本文将深入探讨如何配置Maven的远程仓库,以便在项目中顺利获取所需的依赖。 首先,...

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

    ### 使用Git将本地项目添加至远程仓库的知识点详解 #### Git简介 Git是一款分布式版本控制系统,主要用于追踪在软件开发过程中对文件的修改历史。通过Git,开发者可以方便地管理代码库,跟踪更改,并且能够轻松地与...

    Git采用SSH协议创建远程仓库

    Git采用SSH协议创建远程仓库,并把本地工程上传到远程仓库

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

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

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

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

    如何安装git、git创建本地仓库、本地仓库如何关联GitHub远程及push内容到远程仓库中.docx

    * 如果远程仓库中有文件,先使用git pull --rebase origin master命令将两者内容合并,然后使用git push origin master命令 * 之后,只需使用git push origin master命令,push到远程仓库中 六、其他命令 * git ...

    git 介绍及使用 ,基础使用

    下面我们来说说 Git 的安装、基本使用、远程仓库操作、分支管理、Idea 关联 Git 使用等。 一、Git 安装 首先,我们需要下载 Git 的安装包,从官方网址 https://git-scm.com 下载。下载完成后,傻瓜式安装,安装...

    Git的使用总结与远程仓库GitHub

    Git的使用总结与远程仓库GitHub

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

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

    Git如何修改远程仓库地址

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

Global site tag (gtag.js) - Google Analytics