git的简单介绍和使用

这篇具有很好参考价值的文章主要介绍了git的简单介绍和使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 概念

Git是一个免费和开源的分布式版本控制系统。相较于SVN具有便于本地分支等特性。

git和svn的区别和优势
1.1 区别
  • SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。

  • Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

1.2 git优势
  1. 容易分支;git鼓励创建一个或多个本地分支进行开发且代价极小。与此对应SVN的分支基本上等于将整个项目进行拷贝,成本大。
  2. 速度快;大部分操作都在本地进行,如查看提交记录。但是在拉取的时候会慢,SVN拉取的是最新版本,而GIT会拉取整套版本;
  3. 分布式;与SVN集中式管理相比,GIT每个用户都是主服务的一个完整备份;
  4. 有暂存区;可用于提交部分文件;
  5. 数据安全;每个文件与每次提交都会被验证

2. git的三个状态和三个阶段

  • 三个状态:已修改,已暂存,已提交
  • 三个阶段:工作区,暂存区,仓库

三个状态分别对应三个阶段

2.1 三个状态:
  • 已修改(modified):表示修改了文件,但还没保存到仓库中。

  • 已暂存(staged):已暂存,表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

  • 已提交(committed):表示数据已经安全地保存在本地仓库中。

2.2 三个阶段:
  • Workspace:工作区
  • Index / Stage:暂存区
  • Repository:仓库区(或本地仓库)
  • Remote:远程仓库
  • 工作区(Working Directory):对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。

  • 暂存区(Staging Area):保存了下次将要提交的文件列表信息,一般在 Git 仓库目录中。 按照 Git 的术语叫做“索引”,不过一般说法还是叫“暂存区”。

  • 仓库(Repository): Git用来保存项目的元数据和对象数据库的地方,分为本地仓库与远程仓库。

3. 常用的git命令

3.1 下面是最常用的命令
序号 命令 名称 描述
1 git clone 克隆 复制远程仓库包含历史版本在内的几乎所有数据至本地仓库。
2 ❤ git pull 拉取 将远程仓库的最新内容数据下载到你的本地仓库并尝试合并
3 ❤ git fetch 获取 将远程仓库的最新内容数据下载到你的本地仓库但不会自动合并
4 git checkout 检出 多用途命令,从Git仓库提取文件、撤销修改、切换分支等。
5 git diff 比较未暂存文件与最后一次提交的文件或者已暂存文件差异。
6 ❤ git add 跟踪 跟踪新文件并使之处于暂存状态或合并时将冲突文件标识为已解决等。
7 ❤ git commit 提交 将未暂存的或已暂存的文件保存至本地仓库
8 ❤ git push 推送 将文件推送到远程仓库。
9 git log 查看提交历史。
10❤ git branch 分支 创建或查看分支。
11❤ git merge 合并 合并分支。

fetch和pull的区别:

  • 拉取pull和获取fetch的区别就是是否会自动合并代码;
  • 此外获取fetch除了不会自动合并代码,还可以提前预知远程分支做了哪些提交
3.2 git命令操作流程图如下:

对应三个阶段+三个状态进行学习
git的简单介绍和使用,git相关,git,github,gitee,gitlab

4. 分支内容学习

4.1 项目远程仓库

共分为两个分支。

  • master分支:主干分支。用于发布生产环境。

  • dev分支:开发分支。(一般我们都是从dev拉取版本)接收本地dev分支的合并。测试无误后才合并至master分支,后续根据情况决定是否建立测试分支。

4.2 项目本地仓库
  • 包括一个dev分支与多个功能及bug修复分支。

  • dev分支用来合并其它功能分支的提交,同时用来推送远程dev分支。

  • 功能分支及bug修复分支是临时分支,用于开发具体功能和修复bug,开发完成合并至本地dev分支后可删除;

    注意线上的bug修改分支需要从远程master分支进行拉取。

4.3 生产环境从远程master分支拉取打包,暂不设置“integration manager”角色,每位开发人员均可以向master分支合并。

5. 具体开发步骤

  1. 拉取远程最新提交的dev分支至本地dev分支,保证本地dev分支代码为最新版本。

  2. 从本地dev分支拉取新的功能分支dev-temp-xxx并在其上进行开发

    就是新建一个dev-temp-xxx分支

  3. 本地功能开发分支在开发完成并且自测无误后进行代码提交commit(commit是提交到本地仓库)。

    ps:只是提交到本地仓库,并不是合并merge;

    每个temp分支和dev都有指针指向自己的版本,在没有合并之前是不会产生新的版本的;

  4. 切换到本地dev分支从远程dev分支拉取最新提交。

    保证本地dev最新;因为在我们第一次拉取远程dev进行功能开发期间,可能其他人已经push了一个版本修改了相同的功能,这个时候我们就得重新拉取远程dev到本地dev,以便于解决 / 避免冲突

  5. 将功能分支dev-temp-xxx合并(merge)到本地dev分支,此过程可能产生冲突,解决冲突。

    再本地dev重新拉取以后,我们在把temp分支合并到本地

  6. 推送本地dev分支到远程dev分支。

  7. 将新建的功能分支dev-temp-xxx删除。

个人 具体理解如下:

git的简单介绍和使用,git相关,git,github,gitee,gitlab

6. 如何解决冲突

  1. 冲突发生时首先备份自己开发的内容。

  2. 然后用他人的版本解决冲突。

    舍弃自己的版本,直接用他人的版本作为merge的父类;

  3. 将自己新开发的内容回添到已解决冲突的文件中。

    不是简单的复制粘贴上去

  4. 提交。

7. 减少冲突的方法

  • 任务分解时功能独立;

  • 开发前拉取代码;(尽量早拉取)

  • 开发测试完成后及时提交代码。(尽快早提交)

8. 关于对冲突和合并的理解

  • 冲突的解决,分支的合并都是在本地的;
  • 本地的dev分支版本,都是高于拉取时远程dev的版本,所以在本地合并(merge)之前得重新拉去最新的远程dev分支

9. 补充其他可能用的命令

命令 简要说明
git add 添加至暂存区
git add–interactive 交互式添加
git apply 应用补丁
git am 应用邮件格式补丁
git annotate 同义词,等同于 git blame
git archive 文件归档打包
git bisect 二分查找
git blame 文件逐行追溯
git branch 分支相关 分支管理
git cat-file 版本库对象研究工具
git checkout 分支相关 检出到工作区、切换或创建分支
git cherry-pick 提交拣选
git citool 图形化提交,相当于 git gui 命令
git clean 清除工作区未跟踪文件
git clone 克隆版本库
git commit 提交
git config 查询和修改配置
git describe 通过里程碑直观地显示提交ID
git diff 差异比较
git difftool 调用图形化差异比较工具
git fetch 获取远程版本库的提交
git format-patch 创建邮件格式的补丁文件。参见 git am 命令
git grep 文件内容搜索定位工具
git gui 基于Tcl/Tk的图形化工具,侧重提交等操作
git help 帮助
git init 版本库初始化
git init-db* 同义词,等同于 git init
git log 显示提交日志
git merge 分支相关 分支合并
git mergetool 图形化冲突解决
git mv 重命名
git pull 拉回远程版本库的提交
git push 推送至远程版本库
git rebase 分支变基
git rebase–interactive 交互式分支变基
git reflog 分支等引用变更记录管理
git remote 远程版本库管理
git repo-config* 同义词,等同于 git config
git reset 重置改变分支“游标”指向
git rev-parse 将各种引用表示法转换为哈希值等
git revert 反转提交
git rm 删除文件
git show 显示各种类型的对象
git stage* 同义词,等同于 git add
git stash 保存和恢复进度
git status 显示工作区文件状态
git tag 里程碑管理
9.1 对象库操作相关命令
命令 简要说明
git commit-tree 从树对象创建提交
git hash-object 从标准输入或文件计算哈希值或创建对象
git ls-files 显示工作区和暂存区文件
git ls-tree 显示树对象包含的文件
git mktag 读取标准输入创建一个里程碑对象
git mktree 读取标准输入创建一个树对象
git read-tree 读取树对象到暂存区
git update-index 工作区内容注册到暂存区及暂存区管理
git unpack-file 创建临时文件包含指定 blob 的内容
git write-tree 从暂存区创建一个树对象
9.2 数据传输相关命令
命令 简要说明
git fetch-pack 执行 git fetch 或 git pull 命令时在本地执行此命令,用于从其他版本库获取缺失的对象
git receive-pack 执行 git push 命令时在远程执行的命令,用于接受推送的数据
git send-pack 执行 git push 命令时在本地执行的命令,用于向其他版本库推送数据
git upload-archive 执行 git archive –remote 命令基于远程版本库创建归档时,远程版本库执行此命令传送归档
git upload-pack 执行 git fetch 或 git pull 命令时在远程执行此命令,将对象打包、上传
9.3 分支相关命令
9.3.1 git branch 分支管理

git branch 查看本地所有分支

git branch -a 查看所有的分支

git branch -r 查看远程所有分支

9.3.2 git checkout 切换或新建分支

git checkout --track origin/dev 切换到远程dev分支

git checkout dev 切换到本地dev分支

git checkout -b dev 建立一个新的本地分支dev

9.3.3 git merge 分支合并

git merge origin/dev 将分支dev与当前分支进行合并文章来源地址https://www.toymoban.com/news/detail-639104.html

到了这里,关于git的简单介绍和使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git入门到精通——保姆级教程(涵盖GitHub、Gitee、GitLab)

    此文档来源于网络,如有侵权,请联系删除! Git 是一个开源的 分布式 版本控制系统,可以有效、高速地处理从很小到非常大的项目 版本管理 。也是 Linus Torvalds 为了帮助管理 Linux内核 开发而开发的一个开放源码的 版本控制软件 。 Git概述 Git 是一个免费的、开源的分布式版

    2024年02月13日
    浏览(45)
  • 不一样的 Git 之间 | GitLab vs GitHub vs Gitee vs GitCode

      在软件开发中,版本控制是必不可少的工具之一。Git作为目前最为流行的版本控制系统,也逐渐成为了开发者们的标配。但是,如何选择一个合适的Git仓库来存储您的代码呢?本文将对 GitLab、GitHub、Gitee 和 GitCode 四种主流Git仓库进行对比和评估。 [官方地址]   GitLab 是

    2024年02月04日
    浏览(87)
  • git介绍,安装(手把手),命令与使用(包含IDEA操作,github,gitee的万字图文详述)

    目录 1.Git 1.1 概述 1.2、版本控制 1.3 版本控制工具 1.3.1 集中式版本控制工具 1.3.2 分布式版本控制工具 1.4 Git简史 1.5 Git 工作机制 1.6 Git 和代码托管中心 2.Git安装 2.1 下载安装包 2.2 选择安装路径 2.3 Git 选项配置 2.4 再次确定 Git 安装目录名 2.5 选择Git 的默认编辑器 2.6 分支名设置

    2024年02月05日
    浏览(57)
  • 使用TortoiseGit拉取(clone)、提交代码至托管仓库(GitLab、GitHub、Gitee)

    以GitLab为例,假设我们要拉取GitLab上如下路径的代码: Step 1: 获取代码仓库路径 Step 2: 新建文件夹 在本地新建文件夹用于放置拉取的程序文件等: Step 3: Git clone设置 选择代码仓库路径复制到URL,同时设置拉取文件的保存位置即Directory。此外,根据实际情况选择要拉取的代码

    2024年02月02日
    浏览(83)
  • Git的介绍及其Gitee简单操作

    目录 一、Git的介绍【了解】 1、什么是Git 2、Git版本控制的分类 3、GitHubGitee介绍 二、Git操作前的准备工作         1、安装Git         2、IDEA集成Git         3、创建Gitee账号         4、创建远程仓库 三、发布 1、创建Git本地仓库 2、添加暂存区 3、提交本地仓库 4、推送文件

    2024年04月14日
    浏览(38)
  • GitHub(Gitee、Gitlab)武林秘籍

    关于git常用操作的教程,欢迎看我之前写过的一篇文章:http://t.csdnimg.cn/5QKzJ 好,接下来,正文开始! 这里我们感谢岳不群、令狐冲以及东方不败的友情客串~          岳不群:华山派掌门人,作为掌门他要开创一门华山剑法。         令狐冲:岳不群的大弟子。  

    2024年02月08日
    浏览(57)
  • 使用Git bash切换Gitee、GitHub多个Git账号

        Git是分布式代码管理工具,使用命令行的方式提交commit、revert回滚代码。这里介绍使用Git bash软件来切换Gitee、GitHub账号。     假设在gitee.com上的邮箱是alice@foxmail.com 、用户名为alice;在github上的邮箱是bob@foxmail.com、用户名为bob。 账号 名称 邮箱 网站 1 alice alice@foxmai

    2024年02月04日
    浏览(74)
  • Git详解及 github与gitlab使用

    目录 1.1 关于版本控制 1.1.1 本地版本控制 1.1.2 集中化的版本控制系统 1.1.3 分布式版本控制系统 1.2 Git简介 1.2.1 Git历史 1.3 安装git 1.3.1 环境说明 1.3.2 Yum安装Git 1.3.3 编译安装 1.4 初次运行 Git 前的配置 1.4.1 配置git 1.4.2 获取帮助 1.5 获取 Git 仓库(初始化仓库) 1.5.1 创建裸库 1.

    2024年02月22日
    浏览(41)
  • Git远程仓库的使用(Gitee)及相关指令

    目录 1 远程仓库的创建和配置 1.1 创建远程仓库 1.2 设置SSH公钥 2 指令 2.1 git remote add 远端名称(一般为origin) 仓库路径  2.2 git remote  2.3 git push [-f] [--set-upstream] [远端名称 [本地分支名][:远端分支名]]  2.3 git clone url 2.4 git fetch 2.5 git pull ①打开Gitee的官网,登录后选择创建仓库,

    2024年02月19日
    浏览(48)
  • GitHub、Gitee、Gitlab共用一个SSH密钥配置

    由于我的Github、Gitee、Gitlab用的邮箱不同,向不同的平台提交代码时都需要验证密码,非常麻烦所以配置了一个共用的SSH密钥。 原理: 第一步,设置全局邮箱和用户名 第二步,生产ssh,我下面给的命令没有 -C 指定邮箱这项,原因就是我三个git仓库的邮箱都不同,如果加上

    2024年02月04日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包