Git:(1)简介

Git是一个开源的分布式版本控制系统,分布式相比集中式的最大区别是Git没有“中央服务器”,每位开发者都可以通过克隆(git clone)远程库,在本地机器上存储一个完整的Git仓库,还可以把代码的修改提交到本地库。

一,安装Git

Git支持Linux、Windows和Mac系统,安装Git,可以到Git官方网站直接下载安装程序。在使用Git管理代码的过程中,开发人员还需要一个代码编辑器,本文使用VS Code。

安装Git的过程中,选择VS Code作为Git的默认编辑器,其后面的步骤都使用默认选项,一直点击Next就可以完成安装。

如何在VS Code中使用Git来管理代码,请阅读《VS Code使用Git管理代码》,本文不再赘述。

二,Git的目录结构

Git的目的是实现离线的多人协作,工作流程概括如下:

  • Git系统有两个代码库,服务器上的代码库(也称作远程库)和用户在本地主机上创建的代码库(也称作本地库)。
  • 用户通过 fetch/clone命令把远程库同步到本地库,通过push命令把本地库的主分支同步到远程库。
  • Git系统具有分支功能,每个代码库都有主(master)分支或辅分支,辐分支独立于主分支之外,用于对代码进行修改而不影响其他的工作。
  • Git在本地库上默认创建主分支(master),同步到远程库的更新都是通过主分支来的。用户可以创建辐分支,在辐分支上修改代码,经调试没有异常后,合并到主分支,提交到本地库。

创建本地库的过程是非常简单的,用户在本地主机上创建一个空目录,执行 git init 或 git clone命令后,该目录就变成Git的本地库,其根目录中会自动生成一个.git的隐藏目录,而Git进行版本控制所需要的文件,则都放在.git文件夹中。

在本地代码仓库根目录中,除.git目录之外的所有与.git同级的目录及其子目录都叫做工作区。

Git中独有的术语,理解这些术语非常重要:

  • 远程仓库(Remote):也叫作资源库,是远程机器上的代码库。
  • 本地库(Repository):是用户在本地创建的目录,拥有远程库的一个快照,由工作区和版本库构成。
    • 工作区(Workspace):本地库的根目录中除.git目录以外的内容,存储内容的实际文件;
    • 版本库(.git目录):是本地库的根目录中的一个隐藏目录.git,用于记录版本信息,Git进行版本控制所需要的文件,则都放在.git文件夹中;
      • 暂存区(Index):也叫做缓存区,暂存信息存放在.git目录"下的index文件(.git/index)中,用于临时保存内容的修改;
      • HEAD文件:是.git目录下的HEAD文件(.git/HEAD),指向最后依次提交的结果。
  • 分支(Branch):本地库中默认创建一个主(master)分支,分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

开发人员通过Git命令来管理代码,最常用的6个命令如下图所示:

 

三,Git工作流程

从一般开发者的角度来看,使用Git的工作流程是:

  1. 克隆远程库:从远程库上克隆完整的Git仓库(包括代码和版本信息)到本地;
  2. 在本地库上修改代码:在本地库上根据不同的开发目的,创建分支,修改代码;
  3. 提交到分支:在本地分支上提交代码;
  4. 把修改合并到本地主分支:在本地库上提交更新,也就是说,把修改合并到本地主分支;
  5. 把远程库合并到本地主分支:把远程库上的最新代码fetch下来,跟本地主分支合并,如果存在冲突,那么解决冲突。
  6. 把本地主分支提交到远程库:生成补丁(patch),把补丁发送给远程库。

化繁为简,Git最核心的工作流程是:当把远程库克隆到本地之后,使用Git的工作流程大致是修改本地库、把改动推送到远程库。

step1,克隆远程库

使用 git clone 从现有 Git 仓库中拷贝代码到本地库。

git clone [url]

step2,修改本地库

用户添加文件,把它们添加到暂存区,使用如下命令:

git add <filename>

这是 git 基本工作流程的第一步;使用如下命令以实际提交改动:

git commit -m "comments"

现在,改动已经提交到本地库,但是还没推送到远端仓库。

step3,把改动推送到远程库
由于改动存在于在本地仓库中了,还需要通知其他用户。执行如下命令以把这些改动提交到远端仓库:

git push origin master

可以把 master 换成你想要推送的任何分支。

四,如何创建本地库?

本地库(Repository)是一个目录,这个目录里面的所有文件都可以被Git管理起来,Git跟踪目录中每个文件的修改和删除,以便在将来某个时刻可以“还原”。

创建一个版本库其实就是创建一个空目录,并使Git管理该目录。

创建版本库的第一种方式初始化一个版本库:

# 在当前目录新建一个Git代码库
$ git init# 新建一个目录,将其初始化为Git代码库
$ git init [project-name]

Git 使用 git init 命令来初始化一个版本库,Git 的很多命令都需要在版本库中运行,所以 git init 是使用 Git 的第一个命令。

创建版本库的第二种方式是克隆一个远程库:

git clone [url]

使用 git clone 从现有 Git 仓库中拷贝代码到本地库。

在执行完成 git init / clone 命令后,版本库中会自动生成一个 .git 目录,该目录包含了资源的所有元数据,其他的目录保持不变。

 

在本地库创建完成之后,就可以使用git 命令来对本地库进行修改和管理分支。

关于Git的基本操作,可以阅读《常用 Git命 令清单》,这篇文章总结的详细。

参考文档:

Git的原理简介和常用命令

常用 Git命 令清单

git教程-菜鸟

git教程-廖雪峰

GIT-百度百科

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(专题二)01 矩阵的处理-特殊矩阵

有哪些特殊矩阵&#xff1f; 通用的特殊矩阵 zeros函数 &#xff1a;产生全0矩阵 产生五行五列的随机矩阵A&#xff0c;其值是10--99的整数 产生均值0.6&#xff0c;方差0.1的五行五列正态矩阵B 产生五阶单位阵 验证等式成立 ones函数 &#xff1a;产生全1矩阵 eye函数 &…

Git(2):安装和使用

Git安装和使用 刚开始用git的小白适用&#xff0c;&#xff0c;转自http://www.cnblogs.com/qijunjun/p/7137207.html 实际项目开发中&#xff0c;我们经常会用一些版本控制器来托管自己的代码&#xff0c;今天就来总结下Git的相关用法&#xff0c;废话不多说&#xff0c;直接…

设计模式(二) 模板方法

模板方法模式——在一个抽象类中定义一个操作中的算法骨架&#xff0c;而将一些步骤延迟到子类中去实现&#xff08;对应于我们根据自己的情况向模板填充内容&#xff09;。模板方法使得子类可以不改变一个算法的结构前提下&#xff0c;重新定义算法的某些特定步骤&#xff0c;…

33. Search in Rotated Sorted Array

文章目录题目二分解题81 Search in Rotated Sorted Array II题目 输入&#xff1a;一个按升序排序的数组nums&#xff0c;但是这个数组在某个位置被旋转了。(例如., 原始数组是[0,1,2,4,5,6,7]&#xff0c;旋转后就变成 [4,5,6,7,0,1,2])。第二个输入是一个int target。 输出&…

第七十期:2019年度Java开发者路线图

本文将向大家展示了一张Java开发者路线图。该路线图在保持简单可行的基础上&#xff0c;介绍了各种具有业界标准、且方便多数人遵循的工具和程序库。 作者&#xff1a;陈峻 许多Java开发人员都希望通过某种Java成长路线图&#xff0c;来解答有关&#xff1a;该学习哪些技术&am…

常见的软件

重装完系统后&#xff0c;会有不少软件需要重装&#xff0c;这边简单列一下自己需要下载安装的软件。 1. 首先下载一个浏览器&#xff0c;我这边下载的是谷歌浏览器。&#xff08;不过现在的edge还是挺好用的&#xff09; 下载安装完可以修改启动时的网址和默认搜索引擎。&…

第七十一期:管理 | 技术Leader:选OKR还是KPI?

除了 KPI&#xff0c;考核员工还有什么方式?OKR 是一种简单的管理方法&#xff0c;但是对于其误解和各种疑惑却很多。 作者&#xff1a;燕标 除了 KPI&#xff0c;考核员工还有什么方式?OKR 是一种简单的管理方法&#xff0c;但是对于其误解和各种疑惑却很多。 图片来自 Pe…

153. Find Minimum in Rotated Sorted Array

文章目录1题目理解2 二分分治法2.1至少有一部分是有序的2.2 示例2.3 编码3 只有二分1题目理解 输入&#xff1a;一个按升序排序的数组nums&#xff0c;但是这个数组在某个位置被旋转了。(例如., 原始数组是[0,1,2,4,5,6,7]&#xff0c;旋转后就变成 [4,5,6,7,0,1,2])。 输出&a…

JS之onsubmit事件与组织事件外延

on是监听的意思 阻止事件发生&#xff1a;1、return false  2、e.preventDefault()适用于onsubmit outer外部  inner内部 event.stopPropagation()阻止事件向外层div传播 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&…

第七十二期:Visual Studio Online 终于公开上线了

盼望已久的 Visual Studio Online 终于上线了。今年 5 月份&#xff0c;微软在 Build 2019 开发者大会上宣布了 Web 版本的 VS Code&#xff0c;即 Visual Studio Online。当时微软释出的是 Private Preview 版本&#xff0c;仅允许开发者申请试用。 作者&#xff1a;佚名 盼望…

154. Find Minimum in Rotated Sorted Array II

文章目录题目理解二分分治只有二分154是 153的升级版本。题目理解 输入&#xff1a;一个按升序排序的数组nums&#xff0c;但是这个数组在某个位置被旋转了。(例如., 原始数组是[0,1,2,4,5,6,7]&#xff0c;旋转后就变成 [4,5,6,7,0,1,2])。注意&#xff1a;这个数组可能包含重…

@ResponseBody注解學習

轉載自https://www.cnblogs.com/qiankun-site/p/5774325.html這篇博客 本文僅是爲了自學整理知識點 ResponseBody 作用 將controller的方法返回的對象通過適當的轉換器轉換爲指定的格式之後&#xff0c;寫入到response對象的body區&#xff0c;通常用來返回JSON數據或者是XML數…

spring mvc学习(4):第一个spring mvc项目

一个Spring MVC的项目如何创建&#xff1f;请看这里。 代码编辑器&#xff1a;Intellij IDEA 请提前在电脑上配置好自己的tomcat&#xff01; 该文属于小白教程&#xff0c;适合初学者。 1 创建Spring MVC项目 第一步&#xff0c;点击新建项目。 第二步&#xff0c;选择Sp…

spring mvc学习(5):IDEA修改背景颜色大全

路径为File->settings->Editor->Color Scheme可以设置软件默认颜色&#xff0c;旁边的小齿轮添加颜色名字 IDEA设置一张背景图片,路径&#xff1a;File->Settings->Appearance&Behavior->Appearance 手动设置护眼绿的RGB颜色 路径&#xff1a;File->…

第七十三期:2019大裁员!年关将至,裁员比例竟达90%?

“现在行情不好啊&#xff0c;工作不好找&#xff0c;我都怀疑我自己了……” 如果这些话出自某个在职场混迹多年、对工作丧失激情的中年男人&#xff0c;似乎并不是难以理解。但是&#xff0c;这些话来自一批985院校毕业的学生&#xff0c;曾经的他们头顶名校光环&#xff0c;…

国际经管学院举办计量经济学术前沿研讨会

6月10日&#xff0c;由首都经济贸易大学国际经济管理学院组织的“计量经济学术前沿研讨会”在博远楼三号报告厅举办。此次研讨会汇集海内外知名学者&#xff0c;校长付志峰出席活动并致辞。 付志峰在致辞向远道而来的国内外专家学者表示欢迎。他讲到&#xff0c;首都经济贸易大…

第七十四期:国内SaaS企业终于活成了自己讨厌的样子!

总之&#xff0c;单纯的SaaS走不通了&#xff0c;为企业客户提供软件服务的这条路总是走得通的&#xff0c;反正SaaS企业就是要抢传统软件公司和软件外包公司的市场&#xff0c;换个姿势&#xff0c;继续降维打击就是了。 作者&#xff1a;佚名 SaaS&#xff0c;英文Software …

378. Kth Smallest Element in a Sorted Matrix

文章目录1题目理解2 思路分析2.1二分思路2.2计算小于等于middle值的个数3 拓展解决leetcode 6681题目理解 输入&#xff1a;一个nxn的矩阵&#xff0c;每一行从左到右按照升序排列&#xff0c;每一列从上到下按照升序排列。一个整数k。 输出&#xff1a;这个矩阵中第k小的数。…

20 年后,我们怎么看电影?

简评&#xff1a; 几十年来&#xff0c;虚拟现实一直被认为是电影业的未来所在&#xff0c;能够为观众提供比传统影视更身临其境的体验。在 1955 年的一篇题为《未来的电影》的文章中&#xff0c;电影摄影师海里戈就预言「未来的电影将会以生动活泼的形式为人们揭开新科学世界的…

第七十五期:网络 | 5G那些运营商不愿说的秘密

11月1日&#xff0c;国内几大基础运营商正式上线5G资费套餐&#xff1a;月套餐最低128元起&#xff0c;最高869元&#xff0c;这也标志着中国5G通信服务真正进入全民商用时代&#xff0c;不少急于尝鲜者还第一时间购入5G手机并办理相关套餐&#xff0c;率先体验传说中的极速5G网…