您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

远程仓库操作

经过前几节的学习,大家应该对 Git 有初步的了解了,那么我向大家提问题,远程仓库到底是什么?

有同学就要说了,这不很简单吗?远程仓库不就是放在网络上的版本库吗?我们本地可以向它推送数据,也可以拉取数据到本地。

对,没错。认识算是到位,但是概括的还不够全面。远程仓库其实是概念,你可以理解成为网络上的仓库,但绝不仅限于此。广义上来讲,远程仓库指的是其他位置的仓库,这个其他位置,甚至可以在你本地,我这样说够清楚吗?只不过使用这个库时的推送和拉取等操作与你意识中的在网络上的远程仓库是一样的,它们是同一套标准。换句话讲,凡是使用了这套标准的都可以认为是远程仓库,而不仅仅局限于网络上的其他位置。

好了,以上是对远程仓库的概念做了分析说明。接下来我们就可以步入正题,开始学习怎么去使用远程仓库或者远程仓库的一些基本操作。

还记得上节课讲如何初始化本地 git 仓库的时候,我们用到了从远程仓库拉取到本地的那种方式吗?忘记了的可以回去翻看下上一节,就是这个命令,还记得吗?

$ git clone 远程仓库URL

当我们从远程仓库与本地同步后,那么本地即与远程仓库进行了关联操作。我们就可以通过如下命令查看关联的远程仓库:

$ git remote

或者是查看更详细的信息:

$ git remote -v

具体操作步骤如下:

上节课我们知道,使用 “git clone” 命令可以远程仓库到本地。另外,我们还可以手动远程仓库并且为远程仓库起简短的别名,之后数据操作时就很方便了。接下来一起看下具体怎么做呢?

a. 首先,我们可以在与远程仓库进行关联过的目录下使用如下命令查看关联的仓库情况:

git remote -v

b. 如果还要远程仓库地址,并为这个地址起简短的别名,比如叫做 “testGitAdd”,可以使用如下命令进行操作:

git remote add testGitAdd https://github.com/javaDreame/testGitAdd.git

c. 操作完成后,重复步骤 a,查看是不是多了关联的仓库。

d. 成功后,就可以使用 “git fetch” 命令进行拉取数据,命令如下:

git fetch testGitAdd

整个过程的视频流程演示如下:

上面讲述关联远程仓库的时候已经提到了数据的操作,即 “git fetch” 操作。

git fetch URL 和别名两种方式数据,比如:

$ git fetch testGitAdd
$ git fetch https://github.com/javaDreame/testGitAdd.git

这两条命令是等价的。

需要说明的是,该命令会从该远程项目中拉下来你本地还没有的所有数据。完成此操作后,就具有对该远程上所有分支的引用,可以随时合并或检查这些分支(分支的概念后续会讲,先理解为就是远程库上的)。

注意:这个命令仅将数据下载到本地存储库中,仅仅是存在库中了,它不会将其与你的任何工作目录合并或你当前正在处理的。通俗地讲,就是不会直接改变你目录里的,你看不到有变化。你需要手动合并到工作目录中。

当我们共享项目时,必须将本地推送到远程。使用命令:git push ”。如果想将本地 master 分支推送到 origin 服务器那么可以运行下面的命令将已完成的所有提交推送回服务器(关于分支的概念后续会讲,此处先理解成本地库):

$ git push origin master

注意:
(1)本地执行 “push” 推送之前,必须先使用 “git add” 和 “git commit” 命令提交。关于这两个命令,后续会系统讲解。
(2)只有当从服务器克隆下来后并且此期间没有人推送时,推送命令才有效。如果同事也克隆了一份到他们本地,并且他们后又推送到服务器,那么你的推送将被拒绝。必须先使用 "git pull" 命令他们的,然后将其合并到你的工作仓库中,最后才能进行推送。

关于这部分说明,同学们可能还会有些地方存在疑惑,很正常。因为我们有些细节还没讲到,后续慢慢就明白了。

这部分操作视频如下:

有时候我们需要查看远程仓库的更多信息,可以使用 “git remote show” 命令。同样 URL 和别名:

$ git remote show origin
* remote origin
  Fetch URL: https://github.com/javaDreame/testGit.git
  Push  URL: https://github.com/javaDreame/testGit.git
  HEAD branch: master
  Remote branches:
    dev    tracked
    master tracked
  Local branch conured for 'git pull':
    master merges with remote master
  Local ref conured for 'git push':
    master pushes to master (up to date)

这部分展示了远程存储库 origin 对应的的 URL,以及已追踪(tracked)到的分支信息。还有,如果在 master 分支上并运行 git pull,它将在 master 所有远程引用后合并到远程的分支中(这是它与 git fetch 的区别),还列出了已拉取到的的所有远程引用。

Git 很贴心地为我们提供了远程仓库的操作,万一你起了个别名又嫌不合适了咋办!接下来就看下怎么:

例如,testGitAdd 这个名字又臭又长,我要将 testGitAdd 为 testAdd,则可以使用 git remote rename

$ git remote rename testGitAdd testAdd

那么,我直接不想要了,想呢?也很简单:

$ git remote remove testAdd

说明:以这种方式对远程的引用后,与该远程关联的所有远程跟踪分支和配置设置也将被。

这节课知识点相对比较多,可能涉及到的有些操作一时不理解,之后我们还会专门系统地提到,大家不要担心,只需要先按我说的去理解下就可以。那么我们来回顾下本节课知识点:


联系我
置顶