#

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
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
演示一下使用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
➜  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)

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

1
2
3
4
5
6
7
8
➜  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 的功能。

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

1
2
3
4
5
6
7
8
➜  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 来查看远程仓库中的内容。

1
2
3
4
5
6
7
8
9
➜  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 renam e 命令可以来重命名仓库。

1
2
3
4
5
6
➜  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 命令可以删除远程仓库。

1
2
3
4
5
➜  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)

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

# 最后

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

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