> For the complete documentation index, see [llms.txt](https://pshizhsysu.gitbook.io/git/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://pshizhsysu.gitbook.io/git/yuan-cheng-cang-ku/guan-yu-origin.md).

# 关于origin

![](https://2452311681-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M69DxQyAwV9iRjiteNl%2Fsync%2Fdf74d668c9022009f1bc37074e40018d7f3e542f.png?generation=1588235886455429\&alt=media)

## 本地仓库 to 远程仓库

我们可以为本地的learngit仓库设置两个远程仓库，一个叫`origin`，一个叫`backup`。

首先，我们把learngit目录初始化为一个本地仓库。

第二步，假设`http://x.x.x.x:xx/learngit.git`为一个远程空仓库（仓库1），则在learngit目录下执行以下命令，将本地仓库learngit与远程仓库1相关联且设置远程仓库1的别名为`origin`

```
$ git remote add origin http://x.x.x.x:xx/learngit.git
```

关联好之后，我们便可以使用origin这个别名向远程仓库1同步代码（下面的命令会把当前分支的代码push到远程仓库1的同名分支下）

```
$ git push origin
```

第三步，我们继续为learngit添加一个远程仓库。假设`http://y.y.y.y:yy/learngit.git`为一个远程空仓库（仓库2），则在learngit目录下执行以下命令，将本地仓库learngit与远程仓库2相关联且设置远程仓库2的别名为`backup`

```
$ git remote add backup http://y.y.y.y:yy/learngit.git
```

关联好之后，我们便可以使用backup这个别名向远程仓库2同步代码（下面的命令会把当前分支的代码push到远程仓库2的同名分支下）

```
$ git push backup
```

## 远程仓库 to 本地仓库

假设远程仓库1（`http://x.x.x.x:xx/learngit.git`）是一个已经有内容的非空仓库。执行以下的命令，把远程仓库克隆到本地

```
$ git clone http://x.x.x.x:xx/learngit.git
```

那么，本地的learngit仓库就会默认设置origin为`http://x.x.x.x:xx/learngit.git`

## 常用命令

```
$ git remote -v                            # 查看本地仓库关联的远程仓库信息
$ git remote add [origin] [http://ip:port/abc/xxx.git]    # 建立本地仓库与某个远程仓库的联系，并为远程仓库设置别名
$ git remote rm [origin]        # 解除本地仓库与某个远程仓库的联系
```
