远程协作的主要命令-Git详解(7)

概览

  • git clone
  • git fetch
  • git pull
  • git push

git clone

初始获取远程版本库

1
$ git clone https://git.coding.net/cn-dream/test01.git test01.git

git fetch

在clone后,获取服务器上最新提交,保存到本地历史,配合merge 使用。

1
2
3
4
5
6
7
$ git fetch
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://git.coding.net/cn-dream/test01
217a1af..64f873c master -> origin/master

注意指针

1
2
3
4
$ git lol
* 64f873c (origin/master, origin/HEAD) update index.html
* 217a1af (HEAD -> master) test pages server
* 102c3b0 Initial commit

合并最新内容

1
2
3
4
5
6
7
8
9
10
11
12
$ git merge origin/master
Updating 217a1af..64f873c
Fast-forward
index.html | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
```
查看历史,合并成功
```bash
$ git lol
* 64f873c (HEAD -> master, origin/master, origin/HEAD) update index.html
* 217a1af test pages server
* 102c3b0 Initial commit

git pull

是 git fetch 和 git merge 合并操作

1
$ git pull origin feature # origin 库的 feature 分支

git push

把本地tag推送到远程仓库

1
2
$ git tag -a v0 -m"tag for v0"
$ git push --tags

同步删除分支

本地已经删除了feature分支,使用push delete 删除服务器上的相关内容

1
$ git push --delete origin feature

直接删除服务器分支

在origin后有一个空格,表示用一个空的分支替代feature分支。

1
$ git push origin :feature

git remote

设置git仓库地址,一个仓库可以对应多个仓库,例如在github上,fork了一个项目,要获取项目最新的跟新,可以给这个fork项目加上源来的仓库路径。

1
2
3
4
$ git remote add upstream001 http://github.com/cn-dream/blog1.git
$ git remote rename upstream001 upstream
$ git fetch upstream001
$ git remote rm upstream001