Git的安装和常用命令Git与SVN的区别Gitee远程仓库团队开发代码共享演示

目录

一、Git入门

1.1 Git简介

1.2 Git与SVN的区别

1.2.1 详解

1.2.2 图解 

1.3 Git相较于SVN的优势与劣势

1.3.1 Git的优势与劣势

1.3.2 SVN的优势与劣势

1.4 Git的工作流程

1.4.1 图解

1.4.2 详解

二、Git的安装以及常用命令

2.1 Git官网链接

2.2 安装步骤

2.3 Git的常用命令

2.3.1  常用命令概览

2.4 使用前准备

2.5 搭建项目环境

2.5 团队开发

2.5.1 案例

2.5.2 具体操作

三、Git命令的理论

四、学习Git的收获


一、Git入门

1.1 Git简介

Git 是一个分布式版本控制系统,用于跟踪和管理代码的变化。它是由Linus Torvalds在2005年创建的,旨在提供高效、灵活和可扩展的源代码管理工具。以下是 Git 的一些关键特点和概念的简要介绍:

  1. 分布式版本控制: Git 是分布式的,这意味着每个开发人员都拥有完整的代码库的副本,而不是依赖于集中式服务器。这使得开发人员能够独立工作,并在没有网络连接的情况下进行版本控制操作。

  2. 代码仓库: Git 使用仓库来存储代码和版本历史。一个仓库包含所有的代码、分支、提交历史以及配置信息。

  3. 提交(Commit): 提交是 Git 中的基本操作,它代表了代码库的一个快照,包括一组修改和相关的提交信息。提交是不可更改的,每个提交都有一个唯一的哈希标识。

  4. 分支(Branch): 分支是指代码库中的不同开发线,允许开发人员在不影响主要代码线的情况下进行独立的开发。Git 的分支操作非常高效,允许轻松创建、合并和删除分支。

  5. 合并(Merge): 合并是将一个分支的更改合并到另一个分支的操作。Git 提供了多种合并策略,以确保代码被合并到目标分支时不会引入冲突。

  6. 远程仓库(Remote Repository): 远程仓库是分布式团队协作的关键,它允许开发人员协同工作、共享代码,并在不同的位置之间同步代码。

  7. 克隆(Clone): 克隆是从远程仓库创建一个本地副本的过程。通过克隆,开发人员可以开始在自己的计算机上工作。

  8. 拉(Pull)和推(Push): 拉操作用于将远程仓库的更改同步到本地仓库,而推操作用于将本地更改上传到远程仓库。

  9. 标签(Tag): 标签是对特定提交的符号引用,通常用于标识版本或重要的里程碑。

Git 是许多开发团队和项目的首选版本控制工具,因为它强大、灵活,同时具有强大的分支和合并功能。它支持多种工作流程,并具有丰富的生态系统,包括各种图形用户界面和服务。 Git 的使用可以提高团队的协作效率,降低错误,确保代码可维护性和可追溯性。

1.2 Git与SVN的区别

1.2.1 详解

Git:

  1. 分布式版本控制: Git 是分布式版本控制系统,每个开发人员都拥有完整的代码库的副本。这允许离线工作、灵活的分支和合并,以及更好的协作。

  2. 速度: Git 在性能方面表现出色,因为它本地存储数据并使用快速的算法来处理操作。这使得 Git 在操作大型代码库时更加高效。

  3. 分支和合并: Git 的分支和合并操作非常轻松,允许开发人员创建、切换和合并分支,促进并行开发和实验性工作。

  4. 完整的历史记录: Git 记录每个提交的完整历史记录,包括修改的文件内容。这提供了更丰富的信息,有助于问题追踪和代码审查。

  5. 稳定性: Git 非常稳定,广泛用于许多大型开源项目和企业项目。

SVN (Subversion):

  1. 集中式版本控制: SVN 是集中式版本控制系统,代码库存储在中央服务器上,开发人员需要从服务器检出代码。这种方式限制了分支和合并的灵活性。

  2. 文件级别历史记录: SVN 跟踪文件级别的历史记录,而不是 Git 的内容级别。这在一些情况下可能导致信息不够详细。

  3. 传统文件锁定: SVN 支持文件锁定来避免多人同时编辑同一文件,但这也限制了并行开发的灵活性。

  4. 相对简单: SVN 相对来说更容易学习和使用,因此对于一些团队和项目来说可能更适合。

1.2.2 图解 

1.3 Git相较于SVN的优势与劣势

1.3.1 Git的优势与劣势

Git 的优势:

  • 分布式架构,适合分散团队和离线工作。
  • 高性能和快速的操作。
  • 强大的分支和合并支持,鼓励并行开发。
  • 完整的历史记录和内容级别的跟踪,有助于问题排查。
  • 大型开源项目广泛采用。

Git 的劣势:

  • 学习曲线较陡峭,对初学者来说可能有一些挑战。
  • 由于分布式性质,可能需要更多的存储空间。

1.3.2 SVN的优势与劣势

SVN 的优势:

  • 相对容易上手,适合初学者。
  • 文件锁定机制有助于避免冲突。
  • 适合一些传统开发工作流程。

SVN 的劣势:

  • 集中式架构可能导致单点故障。
  • 分支和合并支持较弱,可能导致工作流程不够灵活。
  • 文件级别历史记录和跟踪限制了问题排查的详细程度。

综合来看,Git 在许多现代开发场景中更受欢迎,特别是对于需要分布式开发、高性能和复杂工作流程的项目。然而,SVN 仍然在某些传统或较小规模的项目中有其用武之地,特别是对于那些更简单的版本控制需求。选择 Git 还是 SVN 取决于项目的具体要求和团队的工作流程。

1.4 Git的工作流程

1.4.1 图解

1.4.2 详解

Git的工作流程主要涉及以下几个关键概念:工作区(Working Directory)、暂存区(Staging Area)、本地仓库(Local Repository)和远程仓库(Remote Repository)。下面是Git的基本工作流程:

  1. 初始化仓库:

    • 使用git init命令在本地目录中初始化一个新的Git仓库。
  2. 进行修改:

    • 在工作区进行代码编辑和修改。
  3. 暂存文件:

    • 使用git add <file>命令将修改的文件添加到暂存区。
    • 可以多次使用git add命令添加不同的文件。
  4. 提交变更:

    • 使用git commit -m "<message>"命令将暂存区的文件提交到本地仓库。
    • 每次提交都会创建一个新的提交记录,记录了文件的变更和提交说明。
  5. 查看提交历史:

    • 使用git log命令查看提交历史,包括每个提交的作者、时间和提交说明。
  6. 分支管理:

    • 使用git branch命令查看所有分支,并使用git checkout <branch>命令切换到不同的分支。
    • 使用git merge <branch>命令合并不同分支的修改。
  7. 远程仓库交互:

    • 使用git remote add <name> <url>命令关联本地仓库和远程仓库。
    • 使用git push <remote> <branch>命令将本地提交推送到远程仓库。
    • 使用git pull <remote> <branch>命令从远程仓库获取最新的提交记录并合并到本地仓库。
  8. 冲突解决:

    • 当多个人同时修改同一文件的同一部分时,可能会发生冲突。
    • 使用合适的工具(如编辑器或Git客户端)解决冲突,并使用git add命令将解决后的文件标记为已解决。
    • 使用git commit命令提交解决冲突的文件。

以上是Git的基本工作流程,通过这些步骤,你可以管理和追踪文件的版本历史,协作开发,并与远程仓库进行交互。深入理解Git的工作流程对于有效地使用和管理Git版本控制系统至关重要。

二、Git的安装以及常用命令

2.1 Git官网链接

Git官网如下(注:下载安装2.2以上的版本):

Git下载官网icon-default.png?t=N7T8https://git-scm.com/downloads

2.2 安装步骤

进入官网进行安装操作:

选择存放路径:

然后一直点击Next即可。

下载完成后,在文件资源管理器中右键出现如图中,两个选项就说明安装成功。

2.3 Git的常用命令

Git 是一个强大的分布式版本控制系统,它有许多常用的命令,用于管理代码库。

2.3.1  常用命令概览

以下是一些常用的 Git 命令及其功能:

  1. git init:在目录中初始化一个新的 Git 仓库。

  2. git clone:从远程仓库克隆代码到本地。

  3. git add:将文件或目录的更改添加到暂存区,准备提交。

  4. git commit:提交暂存区中的更改到本地仓库。

  5. git status:查看工作目录、暂存区和本地仓库的状态。

  6. git log:查看提交历史记录。

  7. git diff:比较工作目录中的更改与暂存区或本地仓库中的内容。

  8. git branch:列出本地分支,或创建新分支。

  9. git checkout:切换分支或还原文件。

  10. git merge:合并一个分支的更改到当前分支。

  11. git pull:从远程仓库拉取并合并更改。

  12. git push:将本地更改推送到远程仓库。

  13. git remote:管理远程仓库的别名。

  14. git fetch:从远程仓库获取最新信息,但不合并。

  15. git reset:重置当前分支到指定的提交。

  16. git rebase:将当前分支的更改在另一个分支的基础上重新应用。

  17. git tag:创建、列出或删除标签,用于标识特定提交。

  18. git stash:暂存当前工作目录的更改,以便在另一个分支上工作。

  19. git blame:显示每行代码的最后一次修改及作者信息。

  20. git config:配置 Git 的各种选项,包括用户信息、别名等。

这些是 Git 中的一些常用命令,但 Git 还有许多其他命令和选项,用于处理更复杂的版本控制任务。你可以使用 git --helpgit help <command> 来查看 Git 命令的详细文档和用法。另外,Git 的社区和在线资源也提供了大量的教程和指南,以帮助你更好地理解和使用 Git。

2.4 使用前准备

首先我们需要有一个gitee的账号,前往gitee的官网进行注册,如下:

gitee官网icon-default.png?t=N7T8https://gitee.com/注册gitee账号如下:

创建账号之后创建一个仓库。点击右上角的+号,并且点击新建仓库。如下:

这里只有填入仓库的名称和选择开源之后,就直接创建仓库即可,点击创建,如下:

创建完成后,会有简易的命令行入门教程,如:Git 全局设置,创建 git 仓库,已有仓库?

将这些命令全部复制到一个文本文件中进行保存。如下:

之后在本地的目录中,创建一个工作区间,来对项目的开发,在这个工作区间中,鼠标右键

点击 Open Git Bash Here ,打开命令窗口。如下:

打开后的效果:

                                   这个命令窗口的命令,更多都是跟Linux是一样的。

打开窗口后,分别将Git 全局设置的命令输入其中分别执行一次。如下:

执行完后,查看本地用户下有没有 .gitconfig 的这个文件,打开看看,和我们的信息是一样的

就OK了。如下:

之后根据 创建 git 仓库的命令,先创建仓库,在进入仓库,进入后将该仓库标记为Git管理的仓库,如下:

标记后创建的仓库本地文件夹中会有个隐藏文件,如图  :

之后进行根据创建 git 仓库的命令,创建一个文件,再将文件给Git管理,之后查看状态

看到如图所示说明已经给Git管理,如果是红色说明没有。具体操作如下:

进行根据命令,上传到本地仓库并且给个备注,再将本地仓库和远程仓库进行绑定,绑定后,再将文件上传到远程仓库,(本地创建绑定远程仓库时,会要输入Git账号和密码.)如图 : 

再到创建仓库完成的页面刷新,就会看到所上传的文件,如图 : 

2.5 搭建项目环境

将项目的文件夹复制到Git工作区间,再将这个项目给Git管理,并且仓库状态。

git add .  这个命令是将该文件夹下所有文件给Git管理,如图 :

将项目上传到本地,并且给与备注,再将项目上传到远程仓库。

如图 : 

 

然后在Gitee的仓库中就可以看到了,如下:

2.5 团队开发

2.5.1 案例

项目已经在远程仓库部署好了,现在比如 : 开发团队中其他人需要获取其中的项目。

2.5.2 具体操作

  • 在这个需要获取其中项目的人中的工作区间,一样的,先点击Git Bash Here ,打开命令窗口。
  • 在命令窗口中输入克隆远程仓库中使用文件的命令。
  • 上面的网址是远程仓库的地址,在右上角有克隆的网址,谁需要就复制给谁即可,再加上命令执行即可拿到所有的文件。

 远程仓库使用文件的命令如下:

执行完成之后可以进入目录中查看到所有的文件。如下::

三、Git命令的理论

Git是一个分布式版本控制系统,它被广泛用于软件开发中的版本控制和协作。下面是一些常用的Git命令及其理论解释:

  1. git init:初始化一个新的Git仓库。

    • 创建一个新的本地Git仓库,用于存储项目的版本历史和文件变更。
  2. git clone <repository>:克隆一个远程仓库到本地。

    • 从远程仓库中复制所有历史和文件到本地,创建一个与远程仓库相同的副本。
  3. git add <file>:将文件添加到暂存区。

    • 将指定文件的当前版本添加到Git的暂存区中,以准备提交到版本历史中。
  4. git commit -m "<message>":将暂存区的文件提交到版本历史中。

    • 创建一个新的版本记录,包含了暂存区中所有文件的当前状态,并附带一条简短的说明信息。
  5. git push:将本地的版本历史推送到远程仓库。

    • 将本地仓库中的最新版本推送到与之关联的远程仓库中,实现版本同步和团队协作。
  6. git pull:从远程仓库拉取最新的版本到本地。

    • 从与当前分支关联的远程仓库中获取最新的版本记录和文件变更,并自动合并到本地仓库。
  7. git branch:列出所有分支。

    • 显示当前仓库中包含的所有分支,以及当前所在的分支。
  8. git checkout <branch>:切换到指定的分支。

    • 切换当前工作目录到指定分支,并更新工作区中的文件以符合该分支中最新的版本记录。
  9. git merge <branch>:将指定分支合并到当前分支。

    • 将指定的分支合并到当前分支,将两个分支的修改组合在一起并创建一个新的提交记录。
  10. git log:显示当前分支的版本历史。

    • 显示当前分支中所有提交记录的详细信息,包括作者、提交时间、说明等。

四、学习Git的收获

学习Git可以带来许多收获,无论是个人开发者还是团队协作工作,以下是学习Git的一些收获:

  1. 版本控制:Git是一种分布式版本控制系统,学习Git可以帮助你有效地管理代码的版本历史。你可以轻松地回溯到以前的版本、比较不同版本之间的差异,并追踪每个修改是由谁进行的。
  2. 团队协作:Git提供了方便的团队协作功能,多个开发者可以同时在同一个代码库上工作并独立进行修改。通过Git,你可以合并和解决冲突,确保团队成员间的协作更加高效。
  3. 分支管理:Git的分支功能让你能够轻松地创建、切换和合并分支。这对于开发新功能、修复bug或并行开发多个特性非常有用。你可以在不影响主线开发的情况下进行实验和开发。
  4. 撤销和恢复:Git提供了撤销和恢复功能,当你发现某个修改有问题或者想回到之前的某个状态时,可以回退到以前的版本。这样你可以避免不必要的错误和损失。
  5. 远程仓库管理:学习Git还可以让你了解如何与远程仓库进行交互,例如GitHub、GitLab或Bitbucket等。你可以将你的代码推送到远程仓库,与他人分享你的工作,或者从远程仓库获取最新的修改。
  6. 持续集成和部署:Git可以与其他工具和服务集成,如持续集成(CI)和持续部署(CD)平台。这些工具可以自动化构建、测试和部署你的代码,提高开发流程的效率和稳定性。
  7. 开源社区:Git有一个活跃的开源社区,你可以从中学习和获取有关Git的资讯、教程和最佳实践。你可以参与开源项目,与其他开发者交流经验,并为开源社区做出贡献。

总而言之,学习Git将使你成为更有效的开发者,并帮助你更好地协作、管理和维护代码项目。无论是个人项目还是团队项目,掌握Git都是非常有益的。


最后Git的安装和常用命令&Git与SVN的区别&Gitee远程仓库团队开发代码共享演示就到这里,祝大家在敲代码的路上一路通畅!

感谢大家的观看 !

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

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

相关文章

AppWeb 身份验证绕过漏洞 (CVE-2018-8715)漏洞复现

漏洞描述 AppWeb 是一个嵌入式 Web 服务器&#xff0c;基于由 Embedthis Software LLC 开发和维护的开源 GPL 协议。它是用C / C编写的&#xff0c;几乎可以在任何现代操作系统上运行。当然&#xff0c;它旨在为嵌入式设备提供一个 Web 应用程序容器。 AppWeb 可以配置为身份…

智能井盖生产商家,万宾科技井盖传感器产品详情

市政府管理水平决定城市人民幸福程度&#xff0c;所以在智慧城市推进过程中&#xff0c;市政府也在加快城市信息基础设施建设&#xff0c;希望提高公共服务水平&#xff0c;以此来满足城市居民的需求&#xff0c;进一步推进城市信息化智能化发展。作为城市生命线的一个组成部分…

Java线程状态转换

从java层面&#xff0c;线程状态分为六种&#xff0c;分别是New、Blocked、Waiting、Timed_Waiting、Terminated和Runnable New&#xff1a;初始状态&#xff0c;线程刚刚创建还未调用start方法&#xff0c;线程还没有和操作系统的线程关联起来 New->Runnable(箭头1)&#…

MySQL 批量修改表的列名为小写

1、获取脚本 SELECT concat( alter table , TABLE_NAME, change column , COLUMN_NAME, , lower( COLUMN_NAME ), , COLUMN_TYPE, comment \, COLUMN_COMMENT, \; ) AS 脚本 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA 数据库名 and TABLE_NAME表名-- 大写是up…

ArcGIS小技巧|四种计算图斑面积的方法

ArcGIS中有多种方法可计算出图斑面积&#xff0c;本文总结了四种方法&#xff0c;是否可堪称史上最全&#xff1f; 1、计算几何 这是最适合非专业人士的方法&#xff0c;直接利用ArcGIS中的计算几何功能进行计算。 a、首先添加一double类型字段&#xff0c;用来存储面积数值。…

中文编程软件视频推荐,自学编程电脑推荐,中文编程开发语言工具下载

中文编程软件视频推荐&#xff0c;自学编程电脑推荐&#xff0c;中文编程开发语言工具下载 给大家分享一款中文编程工具&#xff0c;零基础轻松学编程&#xff0c;不需英语基础&#xff0c;编程工具可下载。 这款工具不但可以连接部分硬件&#xff0c;而且可以开发大型的软件…

常用设计模式——策略模式

策略模式是什么 策略模式&#xff08;Strategy&#xff09;&#xff1a;针对一组算法&#xff0c;将每一个算法封装起来&#xff0c;从而使得它们可以相互替换。 比如我们一个软件的会员等级&#xff0c;每一个等级都会有对应的一些等级权益&#xff0c;那么每一个等级权益就…

Maven中的继承与聚合

一&#xff0c;继承 前面我们将项目拆分成各个小模块&#xff0c;但是每个小模块中有很多相同的依赖于是我们创建一个父工程将模块中相同的依赖定义在父工程中&#xff0c;然后子工程继承父工程Maven作用&#xff1a;简化依赖配置&#xff0c;统一依赖管理,可以实现多重继承像J…

MySQL的存储过程

存储过程&#xff1a;是一组为了完成特定功能的sql语句的集合&#xff0c;类似于函数 写好一个存储过程之后&#xff0c;我们可以像函数一样随时可以调用sql的集合 复杂的&#xff0c;需要很多sql语句联合执行完成的任务 存储过程在执行上比sql语句执行速度快&#xff0c;效率…

财报解读:抢滩“睡眠经济”,麒盛科技如何制胜市场?

现代市场经济理论的鼻祖亚当斯密曾说&#xff0c;有需求就有市场&#xff0c;有市场才有发展。 调查研究显示&#xff0c;我国超3亿人存在睡眠障碍&#xff0c;其中超3/4的人晚11点以后入睡&#xff0c;近1/3的人熬到凌晨1点以后才能入睡。针对“睡个好觉”需求的“睡眠经济”…

动态内存管理(上)

目录 为什么要有动态内存分配malloc和freemallocfree calloc和realloccallocrealloc 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 &#x1f412;&#x1f412;&#x1f412; 个人主页 &#x1f978;&#x1f978;&#x1f978; C语言 &#x1f43f;️&…

有关python库

官方库 #1、导入某模块 import os #2、导入OS模块中的system方法 from os import system #3、导入某模块中的孙子模块中的xx方法&#xff0c;并重命名 from module.xx.xx import xx as rename #4、导入OS中的所有模块 #不用进行OS.method(),直接method&#xff08;&#xff0…

RRC configured BWP

TS 38.822有UE BWP 相关能力 IE的详细介绍,如下图。 举例说明,对于UE上报bwp-SameNumerology=upto2时,根据上图中的描述,UE支持能力情况如下:每个carrier最多支持2 个UE specific RRC configured DL/UL BWPs;可以通过DCI和BWP-InactivityTimer主动切换BWP;每个carrier的…

Linux安装Python3.10与部署flask项目实战详细记录

java开发新手入门Python,创建flask后端服务对外提供访问.记录一下在阿里云服务器部署flask项目的操作过程,简单介绍一下使用的阿里云服务器系统配置:ubantu16.04,其他内核版本操作部分命令会有所区别,下面开始详细操作过程! 1.pycharm创建flask项目并打包 2.Python3.…

【React】04.MVC模式和MVVM模式

React是Web前端框架 1、目前市面上比较主流的前端框架 ReactAngular&#xff08;NG框架&#xff09;Vue 主流的思想&#xff1a; 不在直接去操作DOM&#xff0c;而是改为“数据驱动思想” 操作DOM思想&#xff1a; 操作DOM比较消耗性能[主要原因就是&#xff0c;可能会导…

基于开源项目OCR做一个探究(chineseocr_lite)

背景&#xff1a;基于图片识别的技术有很多&#xff0c;应用与各行各业&#xff0c;我们公司围绕电子身份证识别自动录入需求开展&#xff0c;以下是我的研究心得 技术栈&#xff1a;python3.6&#xff0c;chineseocr_lite的onnx推理 环境部署&#xff1a;直接上截图&#xff…

Linux shell编程学习笔记22: () $() (()) 的用法小结

最近学习Linux Shell编程&#xff0c;对 () (()) [] [[]]等符号的用法还是有点分不太清楚&#xff0c;于是决定再梳理一下。今天先整理 () $() (()) 的用法。 1 单小括号() 1.1 子shell&#xff08;命令组&#xff09; 括号中的命令将会新开一个子shell顺序执行&#xff0c;所…

基于nginx在视频播放器与服务器之间反向代理流程

1 服务器部署 由于我手里只有内网服务器&#xff0c;可以使用&#xff0c;因此在部署nginx代理服务器&#xff0c;使之在播放器和服务器之间实现反向代理并且缓存内容之前&#xff0c;需要做内网穿透&#xff0c;获得可与外界进行通信的地址。 如果想进行内网穿透&#xff0c;…

使用 AIGC ,ChatGPT 快速合并Excel工作薄

职场数据处理&#xff0c;数据分析汇报与统计的过程中&#xff0c;经常会遇到这样的一个问题那就是需要统计的数据源在多个文件中&#xff0c;多个工作薄中&#xff0c;如果要进行数据处理&#xff0c;汇总的时候会很不方便 例如&#xff1a; 如果要汇总6个月的数据可能就得需…

初步利用Ansible实现批量服务器自动化管理

1.Ansible介绍 Ansible是一款开源的自动化运维工具, 在2012年由Michael DeHaan创建, 现在由Red Hat维护。Ansible是基于Python开发的,采用YAML语言编写自动化脚本playbook, 可以在Linux、Unix等系统上运行, 通过SSH协议管理节点, 无需在被管理节点安装agent。Ansible以其简单、…