Git工具使用指南

Git是一个分布式版本控制工具,可以用于管理代码。本文介绍了如何使用git工具。

1. SVN和Git的区别

1.1 SVN

SVN是集中式版本控制工具,所有的代码都存储在一个中央服务器上。每个开发者都可以从中央服务器上获取代码,进行修改,然后再提交到中央服务器上。这样,中央服务器上的代码就是最新的代码。

优点:

  1. 中央服务器存储代码,可以方便地进行代码的管理和控制。
  2. 对于非技术人员来说,使用SVN比较容易上手。
  3. 仓库储存在中央服务器上,本地不需要全部下载,占用的本地存储空间较少。
  4. 可以通过权限控制,限制不同开发者对代码的访问和修改。

缺点:

  1. 需要依赖中央服务器,离线工作不方便。
  2. 分支管理和合并较为繁琐,需要手动进行操作。
  3. 不支持多种协议,如http、https、ssh等。
  4. 社区活跃度较低,可用的开源项目和插件相对较少。

1.2 Git

Git是分布式版本控制工具,每个开发者都有一个本地仓库,用于存储代码。开发者可以从中央服务器上获取代码,进行修改,然后再提交到本地仓库中。当开发者需要将代码提交到中央服务器时,可以将本地仓库中的代码推送到中央服务器上。

优点:

  1. 分布式管理,每个开发者都有一个本地仓库,可以离线工作,不需要依赖中央服务器。
  2. 可以有效地处理二进制文件,如图片、视频等。
  3. 分支管理和合并较为简单,可以方便地进行代码的并行开发和版本控制。
  4. 支持多种协议,如http、https、ssh等。
  5. 社区活跃,有大量的开源项目和插件可供使用。

缺点:

  1. 存储方式比较复杂,需要一定的学习成本。
  2. 对于非技术人员来说,使用Git可能会比较困难。
  3. 仓库会被全量同步到本地,占用大量的本地存储空间。
  4. 在同一套环境中切换分支,可能会产生冲突。

2. Git安装

在开始使用git之前,需要先安装git工具。可以从git官网下载安装包进行安装。

3. 创建本地仓库

使用git管理代码,需要先在本地创建一个git仓库。可以通过以下命令在本地创建一个新的git仓库:

git init <repository-name>

4. 添加文件到仓库

在本地仓库中添加文件,可以使用以下命令:

git add <file>

5. 提交文件到仓库

在本地仓库中提交文件,可以使用以下命令:

git commit -m "commit message"

6. 查看仓库状态

可以使用以下命令查看当前仓库的状态:

git status

7. 查看提交历史

可以使用以下命令查看提交历史:

git log

8. 撤销修改

8.1 git checkout

如果在修改文件后想要撤销修改,可以使用以下命令:

git checkout -- <file>

8.2 git reset --soft / --hard

此外还可以使用git reset将库整体进行充值。

9. 分支管理

git支持分支管理,可以使用以下命令创建和切换分支:

git branch <branch-name>
git checkout <branch-name>

10. git fetch

可以通过git fetch命令,将远程库的变更同步到本地库。注意,此时是更新到.git目录下的数据库中,并不会将变更同步到当前显示的文件中。如果希望当前显示的文件进行更新,需要和下面的git merge, git rebase, git pull等命令配合使用。

11. 合并分支

在git中,可以使用以下命令将一个分支合并到当前分支:

11.1 git merge

git merge会将两个分支的修改合并到一起,形成一个新的提交。这个新的提交会有两个父节点,分别指向被合并的两个分支。这种方式会保留原有的提交历史,但会产生很多无用的合并提交。

git merge <branch-name>

11.2 git rebase

git rebase会将当前分支的修改“移动”到目标分支的最新提交之后,形成一个新的提交。这个新的提交只有一个父节点,指向目标分支的最新提交。这种方式会改变提交历史,但会使提交历史更加清晰。

![imag

git rebase <branch-name>

11.3 git merge和git rebase的区别

git merge和git rebase都是用于合并分支的命令,但它们的实现方式不同。

git merge会将两个分支的修改合并到一起,形成一个新的提交。这个新的提交会有两个父节点,分别指向被合并的两个分支。这种方式会保留原有的提交历史,但会产生很多无用的合并提交。

git rebase会将当前分支的修改“移动”到目标分支的最新提交之后,形成一个新的提交。这个新的提交只有一个父节点,指向目标分支的最新提交。这种方式会改变提交历史,但会使提交历史更加清晰。

因此,如果需要保留原有的提交历史,可以使用git merge;如果需要使提交历史更加清晰,可以使用git rebase。但需要注意的是,使用git rebase会改变提交历史,可能会对其他人造成影响,因此需要谨慎使用。

12. git conflict

如果两个人基于同一个节点,提交了2个分支。合并时,将会发生冲突。

13. git cherry-pick

git可以将某一次提交的变更内容单独导出,成为一个patch。实现只将某一个提交移动到其他分支的能力。

14. git pull

默认模式下,git pull = git fetch + git merge。

git pull origin master

【GiraKoo】Git工具使用指南的更多相关文章

  1. Git命令使用指南

    继续git相关的东西,网上很多讲解的,但是还是喜欢这个图:(爱屋及乌,当然内容也很好,文章链接:http://me.iblogc.com/2015/01/16/Git命令使用指南/) Git是软件开发 ...

  2. AutoConfig工具使用指南

    转载:http://blog.csdn.net/fighterandknight/article/details/70245905 13.1. 需求分析 13.1.1. 解决方案 13.2. Auto ...

  3. 【转】第 02 天:在 Windows 平台必裝的三套 Git 工具

    原文网址:https://github.com/doggy8088/Learn-Git-in-30-days/blob/master/docs/02%20%E5%9C%A8%20Windows%20% ...

  4. windows中使用Git工具连接GitHub(配置篇)

    Git在源码管理领域目前占很大的比重了,而且开源的项目很多都转到GitHub上面了.例如:jQuery, reddit, Sparkle, curl, Ruby on Rails, node.js,  ...

  5. Git详解之六 Git工具(转)

    Git 工具 现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程.你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力. 接下来你 ...

  6. Git详解之六:Git工具

    Git 工具 现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程.你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力.(伯乐在线 ...

  7. 使用git工具将项目上传到github

    注册github账号 https://github.com/ 安装git工具: https://git-for-windows.github.io/ 上面的准备工作完成后,现在开始操作. 一.进入gi ...

  8. Git工具的使用教程

    Git 是一种版本控制工具,也叫作版本管理软件(分布式管理软件).这里介绍Git的基本使用步骤,关于 Git 更详细的介绍,读者可以参考其官方网站提供的文档. 1  安装Git 在Ubuntu系统中安 ...

  9. 使用git工具快速push项目到github(精简)

    Dear Weber ,相信有很多刚开始接触前端的程序猿,在刚接触到git工具传项目到github上时会遇到一些问题,那么下面的话呢,我就整理一下一个大致的思路提供给大家参考: 工具:git (自行下 ...

  10. git使用教程指南

    前言  Git是一个开源的分布式版本控制系统.其核心就在于版本控制.  在实际编码过程中,我们往往会忘记上次对文件的修改内容.若是刚刚修改的还好说,撤销操作即可.但若这是你昨天做的修改并关闭了IDE呢 ...

随机推荐

  1. Android笔记--内容提供者+Server端+Client端

    什么是内容提供者ContentProvider 为App存取内部数据提供的统一的外部接口,让不同的应用之间得以实现数据共享 Client App端 用户输入数据的一端,或者说是用户读取到存储的数据的一 ...

  2. 对于利用JavaBean+Servlet+jsp实现增删改查功能题目的实现

    首先,为了更好地规范代码,可以分别将不同用处的Java文件放置到不同的文件夹里面 对于实体类,可以放在名为Bean的package里面 对于中间用来实现Java与jsp页面交互的类,可以放在名为Ser ...

  3. Apache Kafka教程--Kafka新手入门

    Apache Kafka教程--Kafka新手入门 Kafka Assistant 是一款 Kafka GUI 管理工具--管理Broker,Topic,Group.查看消费详情.监控服务器状态.支持 ...

  4. 「学习笔记」平衡树基础:Splay 和 Treap

    「学习笔记」平衡树基础:Splay 和 Treap 点击查看目录 目录 「学习笔记」平衡树基础:Splay 和 Treap 知识点 平衡树概述 Splay 旋转操作 Splay 操作 插入 \(x\) ...

  5. python实现微信自动发消息功能

    import timeimport uiautomation as autofrom uiautomation.uiautomation import Bitmapimport win32clipbo ...

  6. pandas之分类操作

    通常情况下,数据集中会存在许多同一类别的信息,比如相同国家.相同行政编码.相同性别等,当这些相同类别的数据多次出现时,就会给数据处理增添许多麻烦,导致数据集变得臃肿,不能直观.清晰地展示数据. 针对上 ...

  7. [Linux]CentOS7搭建/配置:YUM仓库/源[本地源/Web源(Apache HTTP(D))/自建源仓库]

    若想搞懂整个配置过程和原理,就按照章节(1 / 2)一步一步地来. 若想直接一步到位,不想花过多时间,尽快配好,就直接看附件章节. 什么是yum源? Yum(全称为 Yellow dog Update ...

  8. 网络框架重构之路plain2.0(c++23 without module) 综述

    最近互联网行业一片哀叹,这是受到三年影响的后遗症,许多的公司也未能挺过寒冬,一些外资也开始撤出市场,因此许多的IT从业人员加入失业的行列,而且由于公司较少导致许多人求职进度缓慢,很不幸本人也是其中之一 ...

  9. 频繁设置CGroup触发linux内核bug导致CGroup running task不调度

    1. 说明 1> 本篇是实际工作中linux上碰到的一个问题,一个使用了CGroup的进程处于R状态但不执行,也不退出,还不能kill,经过深入挖掘才发现是Cgroup的内核bug 2>发 ...

  10. 从源码角度深入解析Callable接口

    摘要:从源码角度深入解析Callable接口,希望大家踏下心来,打开你的IDE,跟着文章看源码,相信你一定收获不小. 本文分享自华为云社区<一个Callable接口能有多少知识点?>,作者 ...