Git 系列教程(8)- 远程仓库的使用
查看远程仓库
- 如果想查看你已经配置的远程仓库服务器,可以运行
git remote命令,它会列出你指定的每一个远程服务器的名称 - 如果是刚 clone 下来的自己的库,能看到 origin,这是 Git 起的默认名字
$ git clone https://github.com/schacon/ticgit
Cloning into 'ticgit'...
remote: Reusing existing pack: 1857, done.
remote: Total 1857 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (1857/1857), 374.35 KiB | 268.00 KiB/s, done.
Resolving deltas: 100% (772/772), done.
Checking connectivity... done.
$ cd ticgit
$ git remote
origin
-v 选项
会显示需要读写远程仓库使用的 Git 的 URL和名称(origin)
git remote -v
origin https://github.com/schacon/ticgit (fetch)
origin https://github.com/schacon/ticgit (push)
栗子
- 若远程仓库不止一个,该命令会将它们全部列出
- 与他人合作,拥有多个远程仓库的仓库
$ cd grit
$ git remote -v
bakkdoor https://github.com/bakkdoor/grit (fetch)
bakkdoor https://github.com/bakkdoor/grit (push)
cho45 https://github.com/cho45/grit (fetch)
cho45 https://github.com/cho45/grit (push)
defunkt https://github.com/defunkt/grit (fetch)
defunkt https://github.com/defunkt/grit (push)
koke git://github.com/koke/grit.git (fetch)
koke git://github.com/koke/grit.git (push)
origin git@github.com:mojombo/grit.git (fetch)
origin git@github.com:mojombo/grit.git (push)
添加远程仓库
git remote add <shortname> <url>
添加一个新的远程 Git 仓库,同时指定一个名称
polo@B-J5D1MD6R-2312 watermarker % git remote -v
origin git@gitee.com:poloyy/watermarker.git (fetch)
origin git@gitee.com:poloyy/watermarker.git (push) polo@B-J5D1MD6R-2312 watermarker % git remote add test git@gitee.com:testyy/waterm
arker.git polo@B-J5D1MD6R-2312 watermarker % git remote -v
origin git@gitee.com:poloyy/watermarker.git (fetch)
origin git@gitee.com:poloyy/watermarker.git (push)
test git@gitee.com:testyy/watermarker.git (fetch)
test git@gitee.com:testyy/watermarker.git (push)
可以使用 test 来代替整个 URL
git fetch 小栗子
可以运行 git fetch pb,拉取仓库数据
$ git fetch pb
remote: Counting objects: 43, done.
remote: Compressing objects: 100% (36/36), done.
remote: Total 43 (delta 10), reused 31 (delta 5)
Unpacking objects: 100% (43/43), done.
From https://github.com/paulboone/ticgit
* [new branch] master -> pb/master
* [new branch] ticgit -> pb/ticgit
从远程仓库中抓取与拉取
从远程仓库中获得数据,可以执行
git fetch <remote>
- 这个命令会访问远程仓库,从中拉取所有你还没有的数据
- 执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看
重点
git clone 命令克隆了一个仓库,Git 会自动将其添加为远程仓库并默认以 “origin” 为名称
git fetch origin
- 这样会抓取仓库里所有新 push 的内容
- 但它只会将新内容下载到本地,并不会自动合并或修改当前内容,需要手动将新内容合并到本地内容中(git pull)
git pull 初步认识
- 默认情况下,
git clone命令会自动设置本地 master 分支跟踪 clone 下来的远程仓库的master分支(或其它名字的默认分支) - 运行
git pull通常会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支
推送到远程仓库
语法格式
git push <remote> <branch>
将 master 分支的内容推送到 origin 服务器
git push origin master
remote 默认就是 origin,而 branch 默认是 master,所以等价写法就是
git push
重点
如果在你推送前,远程仓库已经有新推送的内容,那么本地需要先拉取最新的内容并合并后,才能将本地的内容重新 push 到远程仓库
# 一般的流程
git fetch
git pull
git add .
git commit -m "update"
git push
查看某个远程仓库
git remote show <remote>
可以查看远程仓库的更多信息
% git remote show origin
* 远程 origin
获取地址:git@gitee.com:poloyy/watermarker.git
推送地址:git@gitee.com:poloyy/watermarker.git
HEAD 分支:master
远程分支:
master 已跟踪
为 'git pull' 配置的本地分支:
master 与远程 master 合并
为 'git push' 配置的本地引用:
master 推送至 master (可快进)
能获取到的信息
- 远程仓库的 URL和名称(origin)
- 跟踪分支的信息
- 正处于 master 分支
- 执行 git pull 可以拉取远程仓库的 master 内容,并和本地 master 分支的内容进行合
- 执行 git push 可以将本地 master 分支内容推送到远程仓库的 master 分支上
一个看到更多信息的栗子
$ git remote show origin
* remote origin
URL: https://github.com/my-org/complex-project
Fetch URL: https://github.com/my-org/complex-project
Push URL: https://github.com/my-org/complex-project
HEAD branch: master
Remote branches:
master tracked
dev-branch tracked
markdown-strip tracked
issue-43 new (next fetch will store in remotes/origin)
issue-45 new (next fetch will store in remotes/origin)
refs/remotes/origin/issue-11 stale (use 'git remote prune' to remove)
Local branches configured for 'git pull':
dev-branch merges with remote dev-branch
master merges with remote master
Local refs configured for 'git push':
dev-branch pushes to dev-branch (up to date)
markdown-strip pushes to markdown-strip (up to date)
master pushes to master (up to date)
包含多个分支的信息
远程仓库的重命名与移除
语法格式
git remote rename <old> <new>
小栗子
$ git remote rename pb paul
$ git remote
origin
paul
同时会修改你所有远程跟踪的分支名字,之前引用 pb/master 的现在会引用 paul/master
移除仓库的两种写法
- git remote remove
- git remote rm
git remote remove paul
$ git remote
origin
重点:一旦以这种方式删除了一个远程仓库,那么所有和这个远程仓库相关的远程跟踪分支以及配置信息也会一起被删除
Git 系列教程(8)- 远程仓库的使用的更多相关文章
- git 入门教程之远程仓库
远程仓库 如果说本地仓库已经足够个人进行版本控制了,那么远程仓库则使多人合作开发成为可能. 如果你只是打算自己使用git,你的工作内容不需要发布给其他人看,那就用不到远程仓库的概念. git 是分布式 ...
- 【转】Git使用教程之远程仓库
1.远程仓库 在了解之前,先注册github账号,由于你的本地Git仓库和github仓库之间的传输是通过SSH加密的,所以需要一点设置: 第一步:创建SSH Key.在用户主目录下,看看有没有.ss ...
- [Git高级教程(二)] 远程仓库版本回退方法 - 梧桐那时雨 - CSDN博客
1 简介 最近在使用git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客. 2 问题 如果提交了一个错误的版本,怎么回退版本? 如果提交了一个错误的版本到远程分支,怎么回退远程分支 ...
- Git 基础教程 之 远程仓库
① 注册GitHub账号 由于本地Git仓库和GitHub仓库之间的传输是SSH加密的,所以需要一点设置: a, 创建SSH Key 在用户主目录下,看是否有 .ssh 目录,若无 ...
- Git 系列教程(14)- 远程分支
远程分支 远程引用是对远程仓库的引用(指针),包括分支.标签等等 你可以通过 git ls-remote <remote> 来显式地获得远程引用的完整列表 polo@B-J5D1MD6R- ...
- Git全解析之远程仓库交互
文章目录 1. Git全解析之远程仓库交互 1.1. 中央仓库的概念 1.2. 本地分支与远程分支 1.3. pull与fetch 1.4. 关于捐赠 Git全解析之远程仓库交互 中央仓库的概念 虽然 ...
- [译]Atlassian Git系列教程
国庆期间把Atlassian的Git系列教程看完了.边看边翻译了相关文章. 原教程: https://www.atlassian.com/git/tutorials/ 我翻译的: git init g ...
- git本地项目关联远程仓库
应用场景: 当你在开发一个项目的时候,不想只在本地存储,想用git来管理代码时候的. 1.在你的项目根目录打开git命令窗口,通过 git init 命令把这个目录变成Git可以管理的仓库: git ...
- git在本地向远程仓库创建分支
在本地的仓库种,如果想给upstream创建新分支并关联,需要执行 git push -u/--set-upstream 远程仓库名 远程分支名
随机推荐
- python inspect库
一.介绍 inspect模块用于收集python对象的信息,可以获取类或函数的参数的信息,源码,解析堆栈,对对象进行类型检查等等. inspect模块主要提供了四种用处: 对是否是模块.框架.函数进行 ...
- 07、列表list
列表(list) 是一个有序且可变的容器,在里面可以存放多个不同类型的元素 list = ['阿斯顿','阿发师','收发室'] list = [98,88,66,-1] list = [1,True ...
- TypeScript 入门自学笔记(一)
码文不易,转载请带上本文链接,感谢~ https://www.cnblogs.com/echoyya/p/14542005.html 目录 码文不易,转载请带上本文链接,感谢~ https://www ...
- 2018ICPC 南京Problem J. Prime Game
题目: 题意:给出一个序列a1,⋯,ana1,⋯,an.fac(l,r)fac(l,r)为mul(l,r)mul(l,r)中不同质因数的个数. 请计算: ∑i=1n∑j ...
- c++反汇编 switch
switch 线性处理 24: int nIndex = 0; 01377EBE C7 45 F8 00 00 00 00 mov dword ptr [nIndex],0 25: scanf(&qu ...
- PTA 二叉树的层次遍历
6-6 二叉树的层次遍历 (6 分) 本题要求实现给定的二叉树的层次遍历. 函数接口定义: void Levelorder(BiTree T); T是二叉树树根指针,Levelorder函数输出给 ...
- 基于Centos7xELK+Kafka集群部署方案
本次集群部署使用ELK版本统一为6.8.10,kafka为2.12-2.51 均可在官网下载 elasticsearch下载地址:https://www.elastic.co/cn/downloads ...
- MongoDB数据库的使用
MongoDB是一个基于分布式 文件存储的NoSQL数据库,适合存储JSON风格文件的形式. 三元素:数据库.集合和文档. 文档:对应着关系数据库中的行,就是一个对象,由键值对构成,是json的扩展B ...
- Android Studio 之创建自定义控件
•前言 常用控件和布局的继承结构,如下图所示: 可以看到,我们所用的所有的控件都是直接或者间接的继承自View的: 所用的所有布局都是直接或者间接继承自ViewGroup的: View 是 Andro ...
- Elasticsearch 基础介绍
# Elasticsearch简介 ## 基础概念 Elasticsearch由Shay banon在2004年进行初步开发,并且在2010年2月发布第一个版本. 此后Shay banon在2 ...