📚
handbook
  • Introduction
  • 1.前言
    • 前言
    • 鸣谢
  • 2.环境篇
    • 工具部署和使用
      • 团队协作工具
        • Confluence
      • 开发工具
        • Docker
          • 镜像导入导出
          • 安装
        • Docker Compose
      • 持续集成工具
        • Gerrit
        • Sonarqube
          • 分析参数设定
          • Prerequisite
          • 服务端设置
        • Ubuntu Ci Deploy
          • ubuntu使用docker部署jenkins+sonarqube
        • 持续集成部署
      • 文本编辑工具
        • Gitbook相关注意事项
        • Markdown快速入门
      • 版本控制
        • Git
          • 1.基础
            • Git基础(一)
            • Git基础(二)
            • Git基础(三)
            • Git基础(四)
            • Git基础(五)
          • 2.命令详解
            • 命令速查
          • 3.进阶技巧
            • git技巧
      • 自动化测试工具
        • Appium
          • capability参数配置
          • 安装
          • 简介
      • 项目管理工具
        • Jira
    • 开发环境配置
      • 通用
        • Homebrew安装与使用
        • Git服务器添加SSH Key
        • koroFileHeader使用
        • nodejs与npm的安装
        • npm更换国内源
        • pip使用相关
        • PostgreSQL安装与使用
        • proxychain安装与使用
        • shell配置环境变量
        • snapd安装与使用
        • terminal走代理
    • 快捷键速查
      • shell常用快捷键
  • 3.语言篇
    • C
      • 代码规范
      • 语言技巧
    • Cpp
      • 代码规范
      • 基础知识
        • 理解C++中的左值和右值
      • 语言技巧
        • 并发编程
          • 简单的线程池实现
    • Golang
      • 代码规范
        • 避免使用转义字符串
        • 避免参数语义不明确
        • 嵌套式结构体
        • 函数的分组与顺序
        • 函数命名
        • 声明一致性
        • 导入别名
        • 使用字段名初始化结构体
        • 本地变量声明
        • map初始化
        • nil用法
        • 包命名
        • 命名Printf样式的函数
        • 减少嵌套
        • 缩小变量作用域
        • struct引用初始化
        • 测试表声明
        • 顶层变量声明
        • 不必要的else
      • 环境配置
        • 代码检查格式化工具
          • Go Fmt
          • Goimports
          • Golint
          • Go Vet
        • go mod详解
        • golang安装
        • Golang开发环境
        • Troubleshooting
      • 语言技巧
        • 如何分包
    • Java
      • 代码规范
      • 语言技巧
        • 注解编程
        • 动态代理
    • Js
      • 语言技巧
        • Rollup
    • Kotlin
      • 基础知识
        • 写给开发者Kotlin指引(一)
        • 写给开发者Kotlin指引(二)
    • Python
      • 语言技巧
        • Best Practice Of Python S Project Structure
  • 4.规范篇
    • Git message规范
  • 5.技术篇
    • Android技术
      • Hook
        • EdXposed例子
        • Android 10 上安装Magisk和EdXposed
      • Tinker
        • 1.Tinker及其使用
      • 准备
        • ADB连接设备步骤及注意事项
        • adb连接设备
        • aosp编译
      • 基础
        • Binder接口调用的鉴权方法
        • Make 及 Android 编译系统介绍
        • 使用Content Provider为其他应用提供数据
      • 源码阅读
        • Framework源码分析 Looper Handler
        • Framework源码分析 启动流程 ServiceManager的初始化
        • Framework源码分析 启动流程 Zygote启动SystemServer
    • JS Bridge
      • JSBridge初探
    • Kernel技术
      • kallsyms子系统
    • Test技术
      • 软件测试
        • jnekin+sonar 部署 问题总结
        • 性能测试基础
        • 软件测试的背景
        • 测试基础
        • 测试人员的核心竞争力
    • 操作系统原理
      • 处理器如何实现原子操作
Powered by GitBook
On this page
  • 一、查看本地仓库的远程仓库的关系
  • 二、将本地修改上传至远程仓库
  • 三、远程仓库查看

Was this helpful?

  1. 2.环境篇
  2. 工具部署和使用
  3. 版本控制
  4. Git
  5. 1.基础

Git基础(三)

PreviousGit基础(二)NextGit基础(四)

Last updated 4 years ago

Was this helpful?

已经将git在本地使用的所有要点都说明了,本节主要说明如何与远程仓库交互。git可以完全脱离网络使用,但是如果本地硬盘损坏,所有修改都会永久失去。使用远程仓库增加备份是很有必要的。

一、查看本地仓库的远程仓库的关系

使用git remote可以查看当前仓库与远程仓库的关系。

➜  HandBook git:(master) git remote
origin

origin是git在clone项目时为远程仓库服务器生成的默认名字,使用-v选项就可以查看远程仓库的详细信息。

➜  HandBook git:(master) ✗ git remote -v
origin    git@github.com:Future-Walkers/HandBook.git (fetch)
origin    git@github.com:Future-Walkers/HandBook.git (push)

其中,origin表示当前的远程服务器的名字,git@github.com:Future-Walkers/HandBook.git表示远程仓库的地址,git@表示使用的协议是git,他通过SSH来验证是否具有clone的权限。最后的(fetch)和(push)则表示当前对于远程仓库具有fetch和push的权限。

当你在本地完成修改后,如果想要上传至远程仓库,需要使用git remote add <repo>的方式将本地仓库与远程仓库关联。

二、将本地修改上传至远程仓库

在与远程仓库建立关联后,就可以通过git push的命令将本地的修改同步到远程的仓库(当然要先将修改添加到暂存区并提交)。

前面看到,本地仓库具有fetch和push的权限。fetch命令就是将远程仓库的修改拉取到本地,与他相似的还有pull命令。这两个命令的区别是,pull命令出了将远程修改拉取到本地,还会自动将修改合并到你的工作区。

fetch后面可以加上远程仓库的名字,例如git fetch gitlab就是拉取gitlab服务器的代码。

最佳实践是,使用git fetch更新本地仓库,并使用git rebase将远程修改合并,然后在提交你的代码。

提交代码使用git push [remote-git-server-name] [branch-name],所以说你明白为什么一般大家都会不由自主地使用git push origin master了吧,origin是默认的远程仓库名,master是默认的分支(现在GitHub喜欢在创建项目时使用main作为主分支)。在单人项目中,git push origin master的使用频率非常高,这没什么问题。但是,如果多人协作时,使用单一分支会很容易发生冲突。

三、远程仓库查看

使用git remote show repo-name就可以查看远程仓库的情况,这个命令暂时用不太到,先记着就好。

➜  HandBook git:(master) ✗ git remote show origin
* remote origin
  Fetch URL: git@github.com:Future-Walkers/HandBook.git
  Push  URL: git@github.com:Future-Walkers/HandBook.git
  HEAD branch: master
  Remote branches:
    RCheung     tracked
    hk_handbook tracked
    master      tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)
上一节