如何一个例子玩明白GIT

一个例子玩明白GIT

在这里插入图片描述

GIT的介绍和教程五花八门,但实际需要用的就是建仓、推送、拉取等操作,这儿咱可以通过一个例子熟悉这些操作,一次性搞定GIT的使用方法学习。下面这个例子的内容是内容是建立初始版本库,然后将数据复制到 "远程 "版本库。

开始建仓

创建目录/tmp/example,用于这个例子的练习

$ mkdir /tmp/example
$ cd /tmp/example

在这个目录初始化git仓库

$ git init
Initialized empty Git repository in /tmp/example/.git/

创建一个文件RADME.txt

$ echo "Hello, world" > README.txt

git add filenameREADME.txt添加到仓库中

$ git add README.txt # Similar to Team -> Add to Version Control
$ # git commit # Would prompt for message

git commit把之前的操作从缓存提交到仓库,-m后跟上这次提交的说明,每次提交相当于一个暂时的版本,会有唯一的编号,一般工作中会在完成一部分功能或者修改一部分源文件认为需要存档时提交一次。

$ git commit -m "Added README.txt"
[master (root-commit) 0dd1f35] Added README.txt
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 README.txt

到这儿我们就有了一个仓库,里面提交了README.txt文件的初始版本。

更新仓库

现在我们看后续的更改如何提交的仓库

先修改README.txt文件

$ echo "Hello, solar system" > README.txt

然后提交,由于仓库里已经包含README.txt文件了,不需要再用git add filenameREADME.txt添加到仓库中,-a表示提交所有更改

$ git commit -a -m "Updated README.txt"
[master 9b1939a] Updated README.txt
 1 files changed, 1 insertions(+), 1 deletions(-)
$ git log --graph --oneline # Shows graph nodes (not much here) and change info
* 9b1939a Updated README.txt
* 0dd1f35 Added README.txt

创建分支

有时候需要做大的改动,要对源文件做多处修改,希望测试后再更新到仓库,这个修改过程中的版本控制可以在新的分支中进行,待分支任务完成后再合并到主线任务中

使用git checkout -b branchname创建并切换到新的分支,这里新的分支名是french

$ git checkout -b french 0dd1f35 
Switched to a new branch 'french'

在新分支中查看并修改文件README.txt,这个修改不会影响主线分支存储的文件内容

$ cat README.txt 
Hello, world
$ echo "Bonjour, tout le monde" > README.txt

git add filenameREADME.txt添加到french分支仓库中

$ git add README.txt # or commit -a
$ git commit -m "Ajouté README.txt"
[french 66a644c] Ajouté README.txt
 1 files changed, 1 insertions(+), 1 deletions(-)

git log --graph --oneline查看修改记录

$ git log --graph --oneline
* 66a644c Ajouté README.txt
* 0dd1f35 Added README.txt

再新建一个分支web
$ git checkout -b web 0dd1f35

$ echo '<a href="http://git.eclipse.org">git.eclipse.org</a>' > index.html

在分支web中添加文件index.html

$ git add index.html
$ git commit -m "Added homepage"
[web d47e30c] Added homepage
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 index.html\

合并分支

git checkout branchname切换回mater分支,也就是我们的主线任务仓库

$ git checkout master

git branch查看我们的任务仓库里有哪些分支,前面标*的分支是我们当前所在的分支

$ git branch # See what branches we've got
  french
* master
  web

合并web分支到当前分支

$ git merge web 
Merge made by recursive.
 index.html |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 index.html

切换到french分支,合并web分支到french分支

$ git checkout french 
Switched to branch 'french'
$ git merge web 
Merge made by recursive.
 index.html |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 index.html

查看french分支的版本记录

$ git log --graph --oneline
*   e974231 Merge branch 'web' into french
|\  
| * d47e30c Added homepage
* | 66a644c Ajouté README.txt
|/  
* 0dd1f35 Added README.txt
$ git checkout master
$ git log --graph --oneline
*   e3de4de Merge branch 'web'
|\  
| * d47e30c Added homepage
* | 9b1939a Updated README.txt
|/  
* 0dd1f35 Added README.txt

推送到远程仓库

多人协作的情况下,除了本地仓库以外应该还有一个共享的远程仓库,本地修改推送到远程仓库实现协作。这里我们用一个本地目录充当远程仓库,实际情况的操作与此类似

远程仓库的core.bare属性应该是true,这样才能推送(push)到这个仓库

$ mkdir /tmp/other;cd /tmp/other;
$ git init
$ cd /tmp/other;git config --bool core.bare true 
Initialized empty Git repository in /tmp/other/.git/

在本地添加远程仓库的路径,命名为other,实际情况路径可以是URL

$ git remote add other /tmp/other # could be a URL over http/git

master分支推送到远程仓库other

$ git push other master # push branch 'master' to remote repository 'other'
Counting objects: 11, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (11/11), 981 bytes, done.
Total 11 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (11/11), done.
To /tmp/other
 * [new branch]      master -> master

把所有的分支推送到远程仓库

$ git push --all other # Push all branches to 'other'
Counting objects: 8, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (5/5), 567 bytes, done.
Total 5 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (5/5), done.
To /tmp/other
 * [new branch]      french -> french
 * [new branch]      web -> web

结尾

完事儿,懒得写了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/233280.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】第二十七站:内存管理与文件页缓冲区

文章目录 一、物理内存和磁盘交换数据的最小单位二、操作系统如何管理内存三、文件的页缓冲区四、基数树or基数&#xff08;字典树&#xff09;五、总结 一、物理内存和磁盘交换数据的最小单位 我们知道系统当中除了进程管理、文件管理以外&#xff0c;还有内存管理 内存的本质…

【数据结构】面试OJ题———栈|队列|互相实现|循环队列|括号匹配

目录 1. 有效的括号 思路&#xff1a; 2.用队列实现栈 思路&#xff1a; 3.用栈实现队列 思路&#xff1a; 4.设计循环队列 思路&#xff1a; 1. 有效的括号 20. 有效的括号 - 力扣&#xff08;LeetCode&#xff09; 给定一个只包括 (&#xff0c;)&#xff0c;{&…

Gazebo 跟踪8字形和U形轨迹(1) — 错误处理

Gazebo 跟踪8字形和U形轨迹(1) — 错误处理 整个过程还是比较曲折的&#xff0c;主要都是一些细小的问题&#xff0c;跑了很多遍模型才发现 参考轨迹生成问题不大&#xff0c;主要是参考横摆角和参考曲率部分有问题 atan和atan2 首先看下两者的区别 atan 函数&#xff1a;…

Electron[4] Electron最简单的打包实践

1 背景 前面三篇已经完成通过Electron搭建的最简单的HelloWorld应用了&#xff0c;虽然这个应用还没添加任何实质的功能&#xff0c;但是用来作为打包的案例&#xff0c;足矣。下面再分享下通过Electron-forge来将应用打包成安装包。 2 依赖 在Electron[2] Electron使用准备…

CF1898C Colorful Grid(构造)

题目链接 题目大意 n 行 m 列 的一个矩阵&#xff0c;每行有m - 1条边&#xff0c;每列有 n - 1 条边。 问一共走 k 条边&#xff0c;能不能从 &#xff08;1&#xff0c; 1&#xff09;&#xff0c;走到&#xff08;n&#xff0c; m&#xff09;&#xff0c;要求该路径上&am…

pandas数据处理闯关

pandas数据处理 第1关数据准备:将txt文件转成Excel文件第1关:将超市销售Excel文件根据商品的类别筛选存储任务描述相关知识:1. pd.read_excel()读取Excel文件2. DataFrame.to_excel() 向excel文件写入数据3. unique()唯一值函数4. 使用 loc 和 iloc 选择数据 本关代码 第2关数据…

基于YOLOv8深度学习的舰船目标分类检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

如何优雅地使用Mybatis逆向工程生成类

文/朱季谦 1.环境&#xff1a;SpringBoot 2.在pom.xml文件里引入相关依赖&#xff1a; 1 <plugin>2 <groupId>org.mybatis.generator</groupId>3 <artifactId>mybatis-generator-maven-plugin</artifactId>4 <version>1.3.6<…

【小沐学Python】Python实现WebUI网页图表(gradio)

文章目录 1、简介2、安装3、基本测试3.1 入门代码3.2 组件属性3.3 多个输入和输出组件3.4 图像示例3.5 聊天机器人3.6 模块&#xff1a;更灵活、更可控3.7 进度条 结语 1、简介 https://www.gradio.app/ Gradio是用友好的网络界面演示机器学习模型的最快方法&#xff0c;因此…

自然语言处理第2天:自然语言处理词语编码

​ ☁️主页 Nowl &#x1f525;专栏 《自然语言处理》 &#x1f4d1;君子坐而论道&#xff0c;少年起而行之 ​​ 文章目录 一、自然语言处理介绍二、常见的词编码方式1.one-hot介绍缺点 2.词嵌入介绍说明 三、代码演示四、结语 一、自然语言处理介绍 自然语言处理&#xf…

04-详解Eureka注册中心的作用,具体配置,服务注册和服务发现

Eureka注册中心的作用 Eureka架构 远程调用的两个问题 服务的ip地址和端口号写死: 生产环境中服务的地址可能会随时发生变化,如果写死每次都需要重新修改代码多实例问题: 在高并发的情况下一个服务可以有多个实例形成一个集群,此时如果采用硬编码的方式只能访问服务的一个实…

【代码随想录】算法训练计划41

dp 1、343. 整数拆分 题目&#xff1a; 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 输入: n 10 输出: 36 解释: 10 3 3 4, 3 3 4 36。 思路…

揭秘字符串的奥秘:探索String类的深层含义与源码解读

文章目录 一、导论1.1 引言&#xff1a;字符串在编程中的重要性1.2 目的&#xff1a;深入了解String类的内部机制 二、String类的设计哲学2.1 设计原则&#xff1a;为什么String类如此重要&#xff1f;2.2 字符串池的概念与作用 三、String类源码解析3.1 成员变量3.2 构造函数3…

【小聆送书第二期】人工智能时代之AIGC重塑教育

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;网络奇遇记、数据结构 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;正文&#x1f4dd;活动参与规则 参与活动方式文末详见。 &#x1f4cb;正文 AI正迅猛地…

ubuntu 20.04 server 安装 zabbix

ubuntu 20.04 server 安装 zabbix 参考文档 zabbix没用过&#xff0c;用过prometheus&#xff0c; 因为现在很多应用都支持直接接入prometheus监控&#xff0c; 而且大部分语言都都有sdk支持&#xff0c; 可以直接接入自己的业务数据监控。 https://www.zabbix.com/cn/downlo…

激光打标机在智能手表上的应用:科技与时尚的完美结合

随着科技的飞速发展&#xff0c;智能手表已经成为我们日常生活中不可或缺的智能设备。而在智能手表制造中&#xff0c;激光打标机扮演着至关重要的角色。本文将详细介绍激光打标机在智能手表制造中的应用&#xff0c;以及其带来的优势和影响。 ​ 一、激光打标机在智能手表制…

MySql-substring函数和substring_index函数的使用及练习

目录 13.2.1 substring函数 1. 概述 2. 使用格式 3. 参数列表 4. 实例练习 13.2.2 substring_index函数 1. 概述 2. 格式 3. 参数说明 4. 返回值 5. 实例练习1 6. 实例练习2 13.3 牛客练习题 13.2.1 substring函数 1. 概述 substring函数是文本处理函数&#xf…

C语言 占位符 + 转义字符 + ASCLL 表 + 缓冲区

整型 占位符 取值范围 浮点型 占位符 转义字符 注意&#xff1a;绿色字体标注的为不可打印字符。 printf 常用占位符&#xff1a; printf 附加格式 ASCII 表 标准ASCII码的范围是0&#xff5e;127&#xff0c;只需7位二进制数即可表示。 缓冲区 缓冲区分类&#xff1a; sizeof(…

【数据结构】——排序篇(中)

前面我们已经了解了几大排序了&#xff0c;那么我们今天就来再了解一下剩下的快速排序法&#xff0c;这是一种非常经典的方法&#xff0c;时间复杂度是N*logN。 快速排序法&#xff1a; 基本思想为&#xff1a;任取待排序元素序列中的某元素作为基准值&#xff0c;按照该排序码…

自动驾驶学习笔记(十六)——目标跟踪

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo 社区开发者圆桌会》免费报名—>传送门 文章目录 前言 匹配关联 轨迹记录 状态预测 总结 前…