工程效率与工具 · 教程

git命令3 - 远程仓库

远程仓库指的是 托管到因特网或者其他网络中的项目的版本库。

可以使用 git remote 命令来配置远程仓库。

我们先看一下 git remote 命令都有什么子选项.

git remote [-v | --verbose]
git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=<fetch|push>] <name> <url>
git remote rename <old> <new>
git remote remove <name>
git remote set-head <name> (-a | --auto | -d | --delete | <branch>)
git remote set-branches [--add] <name> <branch>...
git remote get-url [--push] [--all] <name>
git remote set-url [--push] <name> <newurl> [<oldurl>]
git remote set-url --add [--push] <name> <newurl>
git remote set-url --delete [--push] <name> <url>
git remote [-v | --verbose] show [-n] <name>...
git remote prune [-n | --dry-run] <name>...
git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]

下面我们只介绍几个常用的远程仓库的命令

配置远程仓库 - git remote add

git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=<fetch|push>] <name> <url>

首先在页面上新建一个空的仓库备用。 web页面上新建git远程仓库.png 演示一下使用:

➜  gitlearn git init .
Initialized empty Git repository in /private/tmp/gitlearn/.git/
➜  gitlearn git:(master) echo '演示配置远程仓库' > testRemoteGit
➜  gitlearn git:(master) ✗ git add .
➜  gitlearn git:(master) ✗ git commit -m "新增一个文件,初始化项目"
[master (root-commit) 5ed81fa] 新增一个文件,初始化项目
 1 file changed, 1 insertion(+)
 create mode 100644 testRemoteGit
 # 配置远程仓库
➜  gitlearn git:(master) git remote add origin https://gitee.com/fangjiaxiaobai/gitlearn.git
# 查看远程仓库
➜  gitlearn git:(master) git remote -v
origin	https://gitee.com/fangjiaxiaobai/gitlearn.git (fetch)
origin	https://gitee.com/fangjiaxiaobai/gitlearn.git (push)

## 在增加一个远程仓库
➜  gitlearn git:(master) git remote add origin2 http://git.baijiahulian.com/wangxiyue/gitlearn.git
➜  gitlearn git:(master) git remote -v
origin	https://gitee.com/fangjiaxiaobai/gitlearn.git (fetch)
origin	https://gitee.com/fangjiaxiaobai/gitlearn.git (push)
origin2	http://git.baijiahulian.com/wangxiyue/gitlearn.git (fetch)
origin2	http://git.baijiahulian.com/wangxiyue/gitlearn.git (push)

将本地的文件推送到远程仓库中

➜  gitlearn git:(master) git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 281 bytes | 281.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-5.0]
To https://gitee.com/fangjiaxiaobai/gitlearn.git
 * [new branch]      master -> master
➜  gitlearn git:(master)

从git仓库中拉取数据

可以使用 git fetch 命令。 我们现在页面上的一个仓库中手动修改一个文件来演示一下fetch的功能。

在页面就行点击编辑,然后加上 这里是在远程仓库中加入的内容。这样一句话。

➜  gitlearn git:(master) git fetch origin
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://gitee.com/fangjiaxiaobai/gitlearn
   5ed81fa..62be3ab  master     -> origin/master

使用 git pull 也可以得到相同的结果。

查看某个远程仓库

git remote show 来查看远程仓库中的内容。

➜  gitlearn git:(master) git remote show origin
* remote origin
  Fetch URL: https://gitee.com/fangjiaxiaobai/gitlearn.git
  Push  URL: https://gitee.com/fangjiaxiaobai/gitlearn.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local ref configured for 'git push':
    master pushes to master (local out of date)

它会列出远程仓库的 URL 与跟踪分支的信息。因为我们这是一个新建的仓库,这里我粘贴一个很多次提交的项目来看一下。

gitRemote分支状态

这个命令列出了当你在特定的分支上执行 git push 会自动地推送到哪一个远程分支。 它也同样地列出了哪些远程分支不在你的本地,哪些远程分支已经从服务器上移除了, 还有当你执行 git pull 时哪些本地分支可以与它跟踪的远程分支自动合并。

重命名远程仓库

使用 git remote rename 命令可以来重命名仓库。

➜  gitlearn git:(master) git remote rename origin giteeOrigin
➜  gitlearn git:(master) git remote -v
giteeOrigin	https://gitee.com/fangjiaxiaobai/gitlearn.git (fetch)
giteeOrigin	https://gitee.com/fangjiaxiaobai/gitlearn.git (push)
origin2	http://git.baijiahulian.com/wangxiyue/gitlearn.git (fetch)
origin2	http://git.baijiahulian.com/wangxiyue/gitlearn.git (push)

删除远程分支

使用命令 git remote remove 命令可以删除远程仓库。

➜  gitlearn git:(master) git remote remove giteeOrigin

➜  gitlearn git:(master) git remote -v
origin2	http://git.baijiahulian.com/wangxiyue/gitlearn.git (fetch)
origin2	http://git.baijiahulian.com/wangxiyue/gitlearn.git (push)

一旦你使用这种方式删除了一个远程仓库,那么所有和这个远程仓库相关的远程跟踪分支以及配置信息也会一起被删除。

最后

期望与你一起遇见更好的自己

期望与你一起遇见更好的自己

配套资料 · 免费领取
本文属于「TOOLS」资料包范围:Git 与效率工具速查表。常用命令与工作流速查。
在公众号「方家小白」回复关键词 TOOLS 即可领取。全文无需关注即可阅读。
TOOLS