【Git】安装和常用命令的使用与讲解及项目搭建和团队开发的出现的问题并且给予解决

news2024/11/24 15:45:32

目录

一、概述

1. 介绍

2. Git与SVN区别

3. 使用流程

二、命令讲解

1. 文件状态

2. 工作区域

三、命令使用

1. 安装

2. 使用前准备

3. 搭建项目环境

4. 团队开发


一、概述

1. 介绍

Git是一个开源的分布式版本控制系统,最初由Linus Torvalds于2005年创建。它主要用于跟踪文件的变化,协作开发和管理项目的版本。Git可以在本地存储库上进行操作,而不需要联网,这使得它非常适合团队合作和远程开发。

Git的主要特点包括分支管理、快速的版本控制、轻量级的标签、易于合并等。它还提供了强大的工具和命令行界面,使得开发者可以方便地进行版本控制和协作开发。Git也被广泛应用于开源项目和商业项目中,成为了目前最流行的版本控制系统之一。

2. Git与SVN区别

Git 

1. 分布式架构:每个开发者都可以在本地拥有完整的代码仓库,并且可以在没有网络连接的情况下工作,具有更好的灵活性和可靠性。

2. 分支管理:Git的分支管理非常轻量级,创建和合并分支非常方便,使得开发者更倾向于频繁地使用分支来进行开发,提高了开发效率。

3. 性能:Git的性能通常比SVN更好,尤其是在处理大型项目和大量文件时,具有更高的效率和速度。

4. 数据完整性:Git使用SHA-1哈希来保证数据的完整性,可以更好地防止数据损坏和篡改。

SVN 

  1. 集中式架构:SVN是一个集中式版本控制系统,所有的代码都存储在中央服务器上。这意味着如果服务器出现故障或者网络连接问题,开发者将无法提交代码或者获取最新的代码,导致开发工作受到严重影响。

  2. 分支和标签管理:在SVN中,分支和标签的管理相对复杂,创建和合并分支需要花费较多的时间和精力。相比之下,Git等分布式版本控制系统在分支管理方面更加灵活和高效。

  3. 性能问题:在处理大型项目和大量文件时,SVN的性能可能会受到影响,特别是在频繁的提交和更新操作时,可能会导致性能下降。

  4. 数据完整性:SVN没有内置的数据完整性检查机制,因此在一些情况下可能会出现数据损坏或篡改的问题。

  5. 缺乏本地操作:SVN需要通过网络连接到中央仓库才能进行版本控制操作,因此在没有网络连接的情况下无法进行提交、更新等操作。

Git和SVN都是版本控制系统,但它们有很多不同之处。

  1. 分布式 vs 集中式:Git是一个分布式版本控制系统,每个开发者都可以在本地拥有完整的代码仓库,并且可以在没有网络连接的情况下工作。而SVN是一个集中式版本控制系统,开发者需要通过网络连接到中央仓库才能进行版本控制操作。

  2. 分支管理:在Git中,分支是非常轻量级的,创建和合并分支非常方便,因此开发者更倾向于频繁地使用分支来进行开发。而在SVN中,分支和标签的管理相对复杂,因此开发者使用分支的频率通常较低。

  3. 历史记录:在Git中,每个本地仓库都包含完整的历史记录,因此可以在本地进行查看和操作历史记录。而在SVN中,历史记录需要通过网络连接到中央仓库才能进行查看和操作。

  4. 性能:由于Git是分布式的,因此它的性能通常比SVN更好,尤其是在处理大型项目和大量文件时。

  5. 数据完整性:Git使用SHA-1哈希来保证数据的完整性,因此可以更好地防止数据损坏和篡改。而SVN则没有内置的数据完整性检查机制。

综上所述,Git相对于SVN具有更好的分布式架构、分支管理、性能和数据完整性等方面的优势,使得它在现代软件开发中越来越受欢迎,Git更适合于分布式团队和开源项目,具有更好的性能和分支管理能力。而SVN的集中式架构、分支管理和性能等方面的缺点,也成为了一些开发者和团队转向Git的原因。

3. 使用流程

Git的使用流程通常包括以下几个步骤:

1. 初始化仓库:在本地文件夹中初始化一个Git仓库,可以使用`git init`命令来进行初始化。

2. 添加文件:将需要进行版本控制的文件添加到Git仓库中,可以使用`git add`命令来添加文件。

3. 提交更改:将添加的文件提交到本地仓库中,可以使用`git commit`命令来提交更改,需要添加提交信息以描述本次提交的内容。

4. 创建分支:如果需要在新的分支上进行开发,可以使用`git branch`命令来创建新的分支,然后使用`git checkout`命令来切换到新的分支。

5. 进行开发:在指定的分支上进行代码的修改和开发工作。

6. 合并分支:当开发完成后,可以将新的代码合并到主分支或其他分支上,可以使用`git merge`命令来进行分支合并。

7. 推送到远程仓库:如果需要将本地仓库的更改推送到远程仓库,可以使用`git push`命令来进行推送。

8. 拉取远程仓库的更改:如果其他开发者对远程仓库进行了更改,可以使用`git pull`命令来拉取远程仓库的最新更改到本地仓库。

以上是Git的基本使用流程,当然在实际开发中可能会涉及更多的操作,比如标签管理、撤销更改、解决冲突等。Git具有丰富的命令和功能,可以根据具体的需求进行灵活的使用。

二、命令讲解

1. 文件状态

在Git中,文件可以处于以下几种状态:

1. 未追踪(Untracked):这是文件的初始状态,表示该文件还没有被Git跟踪。在该状态下,Git不会对该文件进行版本控制。

2. 已追踪(Tracked):表示该文件已经被Git跟踪,但是在本地工作区中有更改。

3. 未修改(Unmodified):表示该文件没有被修改过,与最后一次提交的版本一致。

4. 已修改(Modified):表示该文件在本地工作区中被修改过,但是还没有被提交到暂存区。

5. 已暂存(Staged):表示该文件已经被添加到Git的暂存区,等待被提交到版本库中。

6. 已提交(Committed):表示该文件的更改已经被提交到本地版本库中。

这些状态可以通过`git status`命令来查看,该命令会列出工作区中所有文件的状态信息。理解文件的状态有助于开发者更好地管理和控制文件的版本变化,以及了解当前工作区中的文件变化情况。

2. 工作区域

在Git中,有三个主要的工作区域:

1. 工作目录(Working Directory):也称为工作区,是你在电脑中能看到的目录,它持有实际文件。

2. 暂存区(Staging Area):也称为索引(Index),是一个单独的文件,保存了即将提交到版本库的文件列表以及相应的文件状态信息。

3. 版本库(Repository):也称为本地仓库,是Git的核心部分,包含了项目的元数据和对象数据库。版本库中存储着你项目的每一个版本的快照。

这些工作区域之间的关系如下:

  • - 当你在工作目录中修改文件时,Git会标记这些文件为已修改(Modified)状态。
  • - 通过`git add`命令将已修改的文件添加到暂存区,暂存区中的文件状态变为已暂存(Staged)。
  • - 最后,通过`git commit`命令将暂存区中的文件提交到版本库中,完成文件的版本控制。

理解这些工作区域之间的关系有助于你更好地管理和控制文件的版本变化,以及了解当前工作区中文件的状态。

三、命令使用

1. 安装

在Git官网进行下载,( 下载2.2以上的版本 )

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

 进入官网点击Windows

点击64下载

接下来的安装如图操作,在以下安装过程中没有如图显示操作的,就只要默认即可。

 

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

2. 使用前准备

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

gitee官网icon-default.png?t=N7T8https://gitee.com/

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

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

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

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

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

点击Git Bash Here ,打开命令窗口。

 


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

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

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

就OK了。

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

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

 

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

看到如图所示说明已经给Git管理,如果是红色说明没有。

进行根据命令,上传到本地仓库并且给个备注,再将本地仓库和远程仓库进行绑定,绑定后,再将文件上传到远程仓库,如图 : 

本地创建绑定远程仓库时,会要输入Git账号和密码。 

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

3. 搭建项目环境

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

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

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

如图 : 

在Gitee的仓库中就可以看到了

4. 团队开发

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

在这个需要获取其中项目的人中的工作区间,一样的,先点击Git Bash Here ,打开命令窗口。

在命令窗口中输入克隆远程仓库中使用文件的命令 : 

git clone  https://gitee.com/Jun-san/jun123.git

上面的网址是远程仓库的地址,在右上角有克隆的网址,谁需要就复制给谁即可,再加上

命令执行即可拿到所有的文件。

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

 

在团队开发中,可以会有版本或者修改同一地方的修改,之后一人已经上传到远程,另一个人再生成到远程的话,就会出现以下错误 : 

遇到这个问题呢,两人都需要先获取到最新的远程仓库中的文件

获取最新文件命令 : git pull

都输入该命令后,再查看相同地方的修改是否有问题,比如版本问题

如图 : 

可以看到修改的版本出现了两个5.0.3和5.0.5,比如经过双方的商量,两个版本都需要留下

只需要一人将其中的代码修改为如图 : 

将其中多余的符号删除掉就好,如何输入命令给git管理,并且将上传到本地仓库,再上传到远程仓库

如图 : 

最后双方都输入命令 : git pull     ( 获取最新文件 )

即可完成解决问题。

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

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

相关文章

美国阿里海外仓地址

随着跨境电商的发展,越来越多的消费者开始关注海外购物。而在美国,有一个名为阿里海外仓的地方,为消费者提供了便捷的购物体验。本文将详细介绍美国阿里海外仓的地址、服务内容以及如何下单等相关信息。 一、美国阿里海外仓地址 美国阿里海外…

米软科技 | 推进医院智慧管理分级评估体系建立、提升评级

国家卫生健康委办公厅于2021年3月15日发布了“关于印发医院智慧管理分级评估标准体系(试行)的通知”(国卫办医函〔2021〕86 号),该评估体系用于指导医疗机构科学、规范开展智慧医院建设,提升医院管理精细化…

IP 地址冲突检测工具

IP 冲突是一个术语,用于表示同一网络或子网中尝试使用相同 IP 地址的两个或多个设备的状态,这可能会导致发往特定主机的通信与其他主机混淆,因为两者都使用相同的 IP,为了避免这种情况,某些主机在发生 IP 冲突时会失去…

目前为止看过最帅气的一篇论文YOLOv3: An Incremental Improvement(2018.4)

文章目录 AbstractIntroductionThe DealBounding Box PredictionClass PredictionPredictions Across ScalesFeature ExtractorTraining How We DoThings We Tried That Didn’t WorkAnchor box x, y offset predictionsLinear x, y predictions instead of logisticFocal loss…

2010年09月06日 Go生态洞察:Go语言荣获2010年度Bossie奖

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

双11专场直播,最高抽200元现金红包!

虽然我们把这场直播的主题定为“老用户必须观看的直播”,但估计也有不少新朋友。 因此,本文除了为大家预告双11专场直播内容外,还会为大家介绍一下我们水经注是做什么的,以及公布直播间都有哪些福利好礼! 观看双11专…

VS2010配置gdal1.10.0 gdal1.10.1编译

1.gdal1100编译 正文: 重要:gdal编译完是release版本的,工程中加载使用时release模式才能用,debug模式使用报错“错误LNK2038:检测到“_ITERATOR_DEBUG_LEVEL”的不匹配:值“0”与main.obj中的值“2”不匹…

基于安卓android微信小程序的在线考试系统

项目介绍 微信在线考试系统的设计主要是对系统所要实现的功能进行详细考虑,确定所要实现的功能后进行界面的设计,在这中间还要考虑如何可以更好的将功能及页面进行很好的结合,方便学生可以很容易明了的找到自己所需要的信息,还有…

一个数组实现两个栈

一个数组实现两个栈 基本思路: 1.定义两个栈顶top1-1,top2maxsize 2.栈满,当top1与top2相差1时栈满 package 例题; //一个数组实现两个栈 public class TwoStack {private int[] arr;private int maxSize;//定义栈顶private int top1;private…

Kotlin(十) 空指针检查、字符串内嵌表达式以及函数默认值

空指针检查 我们在之前的章节里,有定义一个Study的类,它有两个函数,一个doHomework(),一个readBooks()。然后我们定义个doStudy函数,来调用它们,代码如下: fun doStudy(study: Study) {study.doHomework(…

SecureCRT安装、注册教程

SecureCRT保姆级安装教程!!! 安装包与注册机自取。 链接:https://pan.baidu.com/s/1IrFkHlrtCoc67QnQ_z1TWQ?pwdt25m 提取码:t25m 一 前期准备 1.1 关闭病毒查杀(如果有其他杀毒软件也要关闭&#xff0…

小明和完美序列(HashMap、Map、Entry)

小明和完美序列 知识点: //导包:HashMap、Map、Entry import java.util.HashMap; import java.util.Map; import java.util.Map.Entry;public class Main {public static void main(String [] args) { //创建Map(HashMap)对象 M…

基于Kinect 动捕XR直播解决方案 - 硬件篇

Kinect-V2 硬件设备 一、Kinect介绍 1、Kinect for Windows 的开发配置 Kinect V2 操作系统:Windows 10(必须) Windows Surface Windows Surface 2 开发环境:Visual Studio 2017 .NET Framework 4.5 (.NET Framework 4.5) 硬…

【Ubuntu 语音控制安卓设备刷短视频 orangePi zero2 H616 (已开源) 】.md uptada:23/11/07

文章目录 H616_实现Ubuntu语音控制安卓设备刷短视频小美效果展示H616 ubuntu系统 安装adb智能公元 SU-03T 离线语音模组 固件制作配合串口实现 小美_控制安卓刷抖音 H616_实现Ubuntu语音控制安卓设备刷短视频 注意:orangePi zero2 H616 安装系统为ubuntu 小美效果…

信创加速,美创科技加入UOS主动安全防护计划(UAPP)

近日,统信UOS主动安全防护计划 (UAPP) 技术沙龙暨新老会员交流活动在北京召开。 美创科技作为信创产业的重要参与者受邀参加。在2023年度UAPP合作伙伴授牌发布仪式上,美创科技获得统信软件授牌,正式成为UAPP成员单位,将与统信软件…

日防夜防,家贼难防?企业防泄密为什么这么难?

企业经营保密就是保生命,你知道吗? 案例分析 根据国家信息部门的报告显示,高达85%的数据泄密不是因为黑客工资有多厉害,而是由公司员工造成的。 而且现在移动办公环境,大家都用手机在线办公软件的工作激励外泄更容易…

使用python快速搭建接口自动化测试脚本实战总结

导读 本文将介绍如何使用python快速进行http/https接口自动化测试脚本搭建,实现自动请求、获取结果、数据对比分析,导出结果到Excel等功能,包括python的requests、pandas、openpyxl等库的基本使用方法。 测试需求介绍 通常,在我…

把枯燥的PDF文档转换为翻页电子书,一键上传搞定

PDF是我们工作生活中比较常用的文档格式之一,由于PDF文件可以离线观看,所以通常都是静态的,有时候密密麻麻的文字看得很是头晕眼花,这使得阅读体验变得单调乏味。 为了解决这个问题 , 我们推荐使用FLBOOK &#xff0c…

C盘清理指南(四)——垃圾清理工具

往期目录集合: C盘清理指南(一) 内存小的本质原因https://blog.csdn.net/jsl123x/article/details/134273657?spm1001.2014.3001.5501C盘清理指南(二)——盘符划分操作https://blog.csdn.net/jsl123x/article/detail…

客服系统本地部署:实现高效客户服务

在当今的数字化时代,客户服务已成为企业成功的关键因素之一。为了提供优质、高效的服务,许多企业选择将客服系统本地部署。这种部署方式具有许多优势,如提高响应速度、保障数据安全、提升客户满意度等。 一、客服系统本地部署的概念 客服系统…