1. git clone——获取远程仓库

当 git fetch 命令从服务器上抓取本地没有的数据时,它并不会修改工作目录中的内容。它只会获取数据然后 让你自己合并。

然而,有一个命令叫作 git pull 在大多数情况下它的含义是一个 git fetch 紧接着一个 git merge 命令。如果有一个像之前章节中演示的设置好的跟踪分支,不管它是显式地设置还是通过 clone 或 checkout 命令为你创建的,git pull 都会查找当前分支所跟踪的服务器与分支,从服务器上抓取数据然后尝试合并入那个远程分支。

  1. 获取远程仓库
$ git clone git@github.com:github-book/git-tutorial.git
Cloning into 'git-tutorial'...
remote: Counting objects: 20, done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 20 (delta 3), reused 20 (delta 3)
Receiving objects: 100% (20/20), done.
Resolving deltas: 100% (3/3), done.
$ cd git-tutorial

执行 git clone 命令后我们会默认处于 master 分支下,同时系统会自动将 origin 设置成该远程仓库的标识符。也就是说,当前本地仓库的 master 分支与 GitHub 端远程仓库(origin)的 master 分支在内容上是完全相同的。

$ git branch -a
* masterremotes/origin/HEAD -> origin/masterremotes/origin/feature-Dremotes/origin/master

我们用 git branch -a 命令查看当前分支的相关信息。添加 -a 参数可以同时显示本地仓库和远程仓库的分支信息。

  1. 获取远程的 feature-D 分支
$ git checkout -b feature-D origin/feature-D
Branch feature-D set up to track remote branch feature-D from origin.
Switched to a new branch 'feature-D'

-b 参数的后面是本地仓库中新建分支的名称。为了便于理解,我们仍将其命名为 feature-D,让它与远程仓库的对应分支保持同名。新建分支名称后面是获取来源的分支名称。例子中指定了origin/feature-D,就是说以名为 origin 的仓库(这里指GitHub 端的仓库)的 feature-D 分支为来源,在本地仓库中创建feature-D 分支。

  1. 向本地的feature-D 分支提交更改

现在假定我们是另一名开发者,要做一个新的提交。在 README.md 文件中添加一行文字,查看更改。

$ git diff
diff --git a/README.md b/README.md
index af647fd..30378c9 100644
--- a/README.md
+++ b/README.md
@@ -3,3 +3,4 @@
- feature-A
- fix-B
- feature-C
+ - feature-D

提交

$ git commit -am "Add feature-D"
[feature-D ed9721e] Add feature-D
1 file changed, 1 insertion(+)
  1. 推送feature-D 分支
$ git push
Counting objects: 5, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 281 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To git@github.com:github-book/git-tutorial.git
ca0f98b..ed9721e feature-D -> feature-D

从远程仓库获取 feature-D 分支,在本地仓库中提交更改,再将 feature-D 分支推送回远程仓库,通过这一系列操作,就可以与其他开发者相互合作,共同培育 feature-D 分支,实现某些功能。

2. git pull——获取最新的远程仓库分支

这边的本地仓库中只创建了 feature-D 分支,并没有在 feature-D 分支中进行任何提交。然而远程仓库的 feature-D 分支中已经有了我们刚刚推送的提交。这时我们就可以使用 git pull 命令,将本地的 feature-D 分支更新到最新状态。当前分支为 feature-D 分支。

$ git pull origin feature-D
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 3 (delta 1), reused 3 (delta 1)
Unpacking objects: 100% (3/3), done.
From github.com:github-book/git-tutorial
* branch feature-D -> FETCH_HEAD
First, rewinding head to replay your work on top of it...
Fast-forwarded feature-D to ed9721e686f8c588e55ec6b8071b669f411486b8.

GitHub 端远程仓库中的 feature-D 分支是最新状态,所以本地仓库中的 feature-D 分支就得到了更新。今后只需要像平常一样在本地进行提交再 push 给远程仓库,就可以与其他开发者同时在同一个分支中进行作业,不断给 feature-D 增加新功能。

Git 常用操作(5)- git clone/git checkout -b/git diff/git push/git pull相关推荐

  1. git 常用操作总结——基于Gitlab

    博主目前在蚂蚁集团-体验技术部,AntV/S2 是博主所在团队的开源项目--多维交叉分析表格,欢迎使用,感谢到 S2 github 仓库点赞 star,有任何关于前端面试.就业.技术问题都可给在文章后 ...

  2. Node.js Git Server搭建及Git常用操作笔记

    Node.js Git Server搭建及Git常用操作笔记 安装Git工具即可在本地进行Git仓库的管理,如果要实现远程仓库则需要搭建Git Server.通过Node.js搭建Git Server ...

  3. git报错:‘fatal:remote origin already exists‘怎么处理?附上git常用操作以及说明。

    git添加远程库的时候有可能出现如下的错误, 怎么解决? 只要两步: 1.先删除 $ git remote rm origin 2.再次执行添加就可以了. ---------------------- ...

  4. checkout 撤销修改_git命令(10):git 常用操作,撤销修改(2)

    一. 创建与合并分支 1. 从master分支创建dev分支并切换到dev分支: git checkout master git checkout-b dev 其中,git checkout -b d ...

  5. Git 常用操作(1)- 配置、查看、添加、暂存和提交

    1. Git 基本概念 Git 有三种状态:已提交(committed).已修改(modified)和已暂存(staged). 已提交:表示数据已经安全的保存在本地数据库中. 已修改:表示修改了文件, ...

  6. git常用操作以及码云Gitee连接git

    文章目录 1 git简介 1.1 工作区.暂存区.版本库 1.2 工作区状态保存 2 和gitee连接 2.1 创建git仓库 2.2 通过ssh公钥连接 2.2.1 获取公钥 2.2.2 gitee ...

  7. Git常用操作速查,没有人比我更简单!!

    目录 Git初始化 Git配置 init clone commit branch push pull checkout merge log rm reset --hard rebase 应用场景 其他 ...

  8. Git常用操作(Gitlab)

    文章目录 一.git概述 二.Git 与 SVN 区别 三.Git下载安装 四.Git 工作流程 五.Git 工作区.暂存区和版本库 六.Git 创建仓库 配置 1.查看配置 2.编辑 git 配置文 ...

  9. 如何团队协作,代码托管?Git使用教程:最详细、最浅显、一文读懂Git常用操作!...

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 作者:涂根华 来源:www.cnblogs.com/tugenhua0707 Git使 ...

最新文章

  1. Windows Azure真实案例:GoGrid -托管提供商拓展了服务方案,通过云平台吸引更多客户...
  2. Hardware Error 内存报错
  3. boost::range_category和boost::iterator_category相关的测试程序
  4. org.springframework.beans.factory.BeanDefinitionStoreExcept
  5. java 和 Android Base64加密,java开发面试笔试题
  6. Cross-Site Scripting(XSS): 跨站脚本攻击介绍
  7. 【JavsScript】XMLHttpRequest Level 2 使用指南
  8. 同济版《线性代数》再遭口诛笔伐,网友:它真的不太行...
  9. 高等数学教材上册复习
  10. laravel实现打包多个文件,并下载
  11. Xilinx浮点数IP核使用记录
  12. MySQL教程——2 中级篇(索引、视图、存储过程)
  13. 桌面上计算机程序包能删吗,桌面上的软件怎么删除教程【图文】
  14. 所有游戏类型简称的意思
  15. 起风了数字简谱用计算机,起风了钢琴简谱-数字双手-买辣椒也用券 高橋優
  16. Java程序设计基础【10】
  17. 学大伟业:2019年学习生物竞赛究竟从何下手?
  18. Postgresql中,计算两个日期月份差值或年月日,实现Oracle中months_between、add_months的效果
  19. 【pthread_cancel函数:避免踩坑】
  20. jq简单的确认弹窗的使用

热门文章

  1. 2022-2028年中国磷肥工业投资分析及前景预测报告
  2. 2022-2028年中国橡胶密封制品行业市场研究及前瞻分析报告
  3. c语言从stdin读入
  4. mybatis ResultMap
  5. Linux系统管理必备知识之查看系统用户和用户组
  6. Jupyter Magic - Timing(%%time %time %timeit)
  7. 使用最新版(2020)IntelliJ IDEA 新建 Spring Boot 2.0 项目
  8. OpenCL产业开发链
  9. 2021年大数据Flink(四十一):​​​​​​​Flink实现订单自动好评
  10. 前端面经笔记 2021.8.28