【Git】git的安装与使用教程

news2025/4/8 23:16:57

【Git】git的安装与使用教程

  • 1.简介
    • 1.1.什么是Git
    • 1.2.Git与SVN的区别
  • 二、安装Git
  • 三、注册Gitee帐号
  • 四、使用Git进行上传与下载代码
  • 五、使用Git代码冲突
  • 六、Git常用命令

1.简介

1.1.什么是Git

Git是一个分布式版本控制系统,用于跟踪和管理项目代码的变更。它可以记录每次代码提交的详细信息,并支持多人协作开发。Git能够有效地管理和追踪代码的修改历史,使团队成员可以协同工作、并行开发、合并代码,并轻松回溯到不同的版本。通过Git,开发者可以在本地仓库进行代码的修改和提交,而不需要依赖中央服务器。Git的特点包括分布式架构、高效性能、强大的分支管理、灵活的工作流程等,使其成为广泛使用的版本控制系统之一。

1.2.Git与SVN的区别

Git和SVN是两种常见的版本控制系统,它们在设计和工作方式上有一些重要区别。

分布式 vs 集中式:

Git是分布式版本控制系统,每个开发者都有完整的代码库副本,可以在离线状态下工作。每个开发者都可以进行本地提交、分支操作等,最后再将修改推送到远程仓库。这使得团队成员之间的协作更加灵活,并且没有单点故障。
SVN是集中式版本控制系统,代码库只存在于中央服务器上,开发者需要与服务器交互才能进行版本控制操作。开发者需要依赖服务器来获取代码更新和提交代码,这对于大型项目和远程团队可能会增加网络延迟和依赖性。
性能:

Git在处理大型项目和大量文件时通常比SVN更快速有效。由于每个开发者都有完整的代码库副本,所以大部分操作可以在本地完成,不需要频繁地与服务器进行通信。同时,在从远程仓库拉取代码时只传输差异部分,减少了网络传输负担。
SVN在大型项目和频繁提交的情况下可能会受到性能影响,因为所有的版本历史都存储在中央服务器上,提交和更新操作需要依赖服务器的性能和网络连接。
分支管理:

Git的分支管理功能非常强大灵活,支持轻松创建、合并和切换分支。每个分支可以独立进行开发,并且可以方便地合并到主干或其他分支。这使得团队成员可以同时处理多个任务,更好地组织和协调工作。
SVN的分支操作相对复杂一些,需要手动创建和合并分支,而且分支的管理是集中式的,需要与服务器进行交互。
版本号:

Git使用哈希值作为版本号,可以唯一标识每个代码提交。这使得每个提交都有一个唯一的标识,方便追踪和回溯代码历史。
SVN使用递增数字作为版本号,每次提交都会自动递增,但没有像Git那样唯一标识每个提交的能力。
总体来说,Git具有分布式架构、高效性能、强大的分支管理和灵活的工作流程等特点,适用于大型项目和分布式团队协作。SVN则更适用于小型项目和集中式团队协作,较为简单易用。选择使用哪种版本控制系统取决于具体的项目需求和团队情况。
1.3.Git工作流程
Git的工作流程通常包括以下几个主要步骤:

克隆(Clone)代码库:

开始一个新项目或参与一个已存在的项目,首先需要将远程代码库克隆到本地。使用git clone 命令可以在本地创建一个与远程代码库相同的副本。
修改代码:

在本地代码库中进行开发工作,对代码进行修改、添加新功能等操作。
提交代码:

将修改的代码提交(Commit)到本地代码库。使用git add 命令将指定文件添加到暂存区,然后使用git commit -m ""命令将暂存区的修改提交到本地代码库,并附上提交消息说明。
推送代码:

将本地代码推送(Push)到远程代码库,使得其他团队成员可以看到和获取最新的代码。使用git push命令将本地代码库的修改推送到远程代码库。
拉取代码:

如果有其他人对同一份代码进行了修改,为了保持代码的同步,您可以执行拉取(Pull)操作,将远程代码库的最新代码拉取到本地。使用git pull命令可以从远程代码库拉取最新的代码更新。
以上是Git的基本工作流程,通过这些步骤,多人协作开发时可以更好地管理和追踪代码的变更,并确保团队成员之间的代码同步。同时,Git还提供了强大的分支管理功能,允许并行开发和合并不同的代码分支,从而进一步优化工作流程。

二、安装Git

下载安装程序:

首先,您需要从Git官方网站(https://git-scm.com/)下载适用于您操作系统的Git安装程序。根据您的操作系统选择合适的版本(Windows、Mac、Linux等)。
运行安装程序:

下载完成后,运行Git安装程序。按照提示进行安装,可以接受默认设置,也可以根据个人需求进行自定义安装。
选择安装选项:

在安装过程中,您会看到一些选项供您选择。这些选项可能涉及安装路径、编辑器选择、环境变量等,您可以根据个人偏好进行选择和配置。
完成安装:

安装程序将会在您选择的安装目录中安装Git,并配置相关的环境变量和系统设置。安装完成后,您就可以使用Git命令行工具了。
验证安装:

打开命令行终端(或Git Bash),输入git --version命令,检查是否成功安装并显示当前Git的版本号。如果能够正常显示版本号,则说明Git已成功安装。

三、注册Gitee帐号

3.1.注册账号
在这里插入图片描述

3.2.新建码云仓库
在这里插入图片描述

四、使用Git进行上传与下载代码

使用Git进行代码上传和下载的流程如下:

上传代码:

在本地创建一个新的Git仓库,或者克隆(Clone)一个已存在的远程仓库到本地。

在本地进行代码修改和开发。

使用以下命令将修改的代码提交到本地仓库:

git add :将文件添加到暂存区。
git commit -m “”:提交暂存区的修改到本地仓库,并添加提交消息。
如果需要,可以使用git push命令将本地仓库的修改推送到远程仓库。这样其他团队成员就可以看到和获取最新的代码。

下载代码:

在本地选择一个目录,用于存储要下载的代码。

使用git clone 命令将远程仓库克隆到本地。是远程仓库的URL。

Git会自动将远程仓库的所有代码下载到指定的本地目录。您可以在本地对代码进行修改和开发。

更新代码:

如果有其他人对远程仓库进行了修改,为了保持代码同步,您可以执行拉取(Pull)操作,将远程仓库的最新代码拉取到本地。

使用git pull命令可以从远程仓库拉取最新的代码更新。Git会自动合并远程分支和本地分支的代码。

通过使用Git进行上传和下载代码,团队成员可以方便地协作开发,并确保每个人都拥有最新的代码。同时,Git还提供了强大的分支管理功能,允许并行开发和合并不同的代码分支。这样可以更好地组织和协调工作,提高团队的整体效率。

五、使用Git代码冲突

1.git冲突的场景(主要演示情景三)
情景一:多个分支代码合并到一个分支时;
情景二:多个分支向同一个远端分支推送代码时;
情景三:同一分支,同一文件修改后的提交(即为多个程序员修改了同一个文件)
实际上,push操作和pull操作其实就分别是用本地分支合并到远程分支 和 将远程分支合并到本地分支,所以这两个过程中也可能存在冲突。

分别在同一项目的两个不同本地仓库修改a.txt并提交,则会报出以下错误:
! [rejected] master -> master (fetch first) error: failed to push some refs to ’ 。。。’

拒绝错误:无法推送某些引用
2.解决方案
1.将代码copy出来
2.先从远程仓库pull代码至本地,再修改冲突代码,
注1:git status查看仓库状态,会显示红色的错误提示消息“ both modified: a.txt”
3.打开a.txt,手动修改冲突部分的代码
<<<<<<< HEAD
ww add 18:42 from e:\temp\test1
=======

 ls add 123 at 18:17 from d:\temp\test1
 >>>>>>> 63c73e5933bb7d3d2bed04b06c37a74602d65b2e
 注1:<<<<<<< HEAD  >>>>>>>之间的即为冲突的代码,手动修改即可

3.依次add/commit/push代码至远程仓库
commit执行完生,重新查看仓库状态git status,红色的错误提示消息“ both modified: a.txt”
已经没有,表示冲突已解决

六、Git常用命令

初始化:

git init:在当前目录初始化一个新的Git仓库。
克隆和远程操作:

git clone :克隆(Clone)远程仓库到本地。
git remote add :添加一个远程仓库。
git pull :从远程仓库拉取最新的代码更新。
git push :将本地的代码推送到远程仓库。
添加和提交:

git add :将文件添加到暂存区。
git commit -m “”:提交暂存区的修改到本地仓库,并添加提交消息。
分支管理:

git branch:查看分支列表。
git branch <branch_name>:创建一个新的分支。
git checkout :切换到指定分支。
git merge :合并指定分支到当前分支。
git stash:将当前工作保存到一个临时存储区,以便切换分支或恢复后再应用。
查看和比较:

git status:查看文件状态。
git log:查看提交历史记录。
git diff:查看文件的修改差异。
git show :显示特定提交的详细信息。

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

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

相关文章

【KingbaseES】R6 Liunx下使用命令行部署数据库集群

【KingbaseES】R6命令行部署数据库集群 A.数据库安装包下载软件下载页面授权下载页面 B.数据库集群部署软件安装第一步&#xff1a;创建Kingbase用户第二步&#xff1a;上传安装包1.创建Kingbase用户和准备安装目录2.使用FTP工具上传安装包镜像和授权文件到install目录下并授权…

【Truffle】四、通过Ganache部署连接

目录 一、下载安装 Ganache&#xff1a; 二、在本地部署truffle 三、配置ganache连接truffle 四、交易发送 除了用Truffle Develop&#xff0c;还可以选择使用 Ganache, 这是一个桌面应用&#xff0c;他同样会创建一个个人模拟的区块链。 对于刚接触以太坊的同学来说&#x…

【ATTCK】MITRE Caldera 朴素贝叶斯规划器

CALDERA是一个由python语言编写的红蓝对抗工具&#xff08;攻击模拟工具&#xff09;。它是MITRE公司发起的一个研究项目&#xff0c;该工具的攻击流程是建立在ATT&CK攻击行为模型和知识库之上的&#xff0c;能够较真实地APT攻击行为模式。 通过CALDERA工具&#xff0c;安全…

个人怎么投资伦敦金?

伦敦金是一种被广泛交易的黄金合约&#xff0c;是投资者参与黄金市场的一种交易方式。伦敦金投资也是黄金交易中最为方便快捷的一个种类&#xff0c;在黄金交易市场中占有较大的比例&#xff0c;每天都有来自全球各地的投资者参与买卖&#xff0c;是实现财富增益的一个有效途径…

使用电阻检测仪是否能满足生产车间防静电要求

在现代工业生产中&#xff0c;静电对产品质量和人员安全造成的影响越来越受到重视。特别是在电子、半导体、化工等领域&#xff0c;静电问题可能导致产品损坏、人员触电等严重后果。因此&#xff0c;生产车间的防静电工作显得尤为重要。而电阻检测仪作为一种常用的防静电工具&a…

代码随想录算法训练营Day 47 || 198.打家劫舍、213.打家劫舍II、337.打家劫舍 III

198.打家劫舍 力扣题目链接(opens new window) 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系…

【开源分享】国内可用的免费安卓GPT语音助手 - 可音量键唤起,可联网

写在前面&#xff1a;这是一个我写的开源GPT语音助手&#xff0c;不收钱&#xff0c;只求Star! 简要介绍 这是一个基于ChatGPT的安卓端语音助手&#xff0c;允许用户通过手机音量键从任意界面唤起并直接进行语音交流&#xff0c;用最快捷的方式询问并获取回复 使用效果 一、基…

Hadoop学习总结(使用Java API操作HDFS)

使用Java API操作HDFS&#xff0c;是在安装和配置Maven、IDEA中配置Maven成功情况下进行的&#xff0c;如果Maven安装和配置不完全将不能进行Java API操作HDFS。 由于Hadoop是使用Java语言编写的&#xff0c;因此可以使用Java API操作Hadoop文件系统。使用HDFS提供的Java API构…

工厂设备报修的流程是怎样的?维修流程要如何优化?

在当今高度自动化的生产环境中&#xff0c;工厂设备的正常运行无疑对于企业的生产效率和经济效益具有至关重要的影响。然而&#xff0c;设备故障是生产过程中不可避免的现象。当设备发生故障时&#xff0c;如何快速、有效地进行报修、维修&#xff0c;以恢复设备的正常运转&…

基于SSM的在线作业管理系统 -octopus-master(源码+调试)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

HashMap存值、取值及哈希碰撞原理分析

HashMap中的put()和get()的实现原理&#xff1a; map.put(k,v)实现原理 首先将k,v封装到Node对象当中&#xff08;节点&#xff09;。 然后它的底层会调用K的hashCode()方法得出hash值。 通过哈希表函数/哈希算法&#xff0c;将hash值转换成数组的下标&#xff0c;下标位置上…

纵行科技LPWAN2.0芯片产品ZT1826获“2023年度硬核芯”大奖

2023年10月30日&#xff0c;由深圳市芯师爷科技有限公司主办、慕尼黑华南电子展协办、深圳市半导体行业协会支持的“第五届硬核芯生态大会暨2023汽车芯片技术创新与应用论坛”在深圳国际会展中心1号馆圆满落幕。当晚&#xff0c;“2023年度硬核芯评选”获奖榜单同步揭晓并进行颁…

【C++心愿便利店】No.12---C++之探索string底层实现

文章目录 前言一、写实拷贝&#xff08;了解&#xff09;二、string类常用接口实现2.1 成员变量2.2 默认构造函数2.3 拷贝构造函数2.4 operator2.5 operator[]2.6 c_str2.7 size()2.8 capacity() 三、迭代器的实现3.1 begin()和end()3.2 范围for 四、string类增删查改4.1 reser…

四川芸鹰蓬飞商务信息咨询有限公司电商带货可信吗

今天&#xff0c;我们要向大家介绍的是四川芸鹰蓬飞商务信息咨询有限公司的电商带货服务&#xff0c;一个在电商领域独树一帜的服务项目。它的出现&#xff0c;不仅为电商行业注入了新的活力&#xff0c;也引领了行业发展的新趋势。 一、背景介绍 四川芸鹰蓬飞商务信息咨询有限…

mac 安装使用svn教程

mac 安装使用svn教程 一、安装Homebrew 要在Mac OS上安装SVN&#xff0c;首先需要安装Homebrew。Homebrew是一个流行的包管理器&#xff0c;因此我们将使用它来安装SVN。 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"…

电子印章怎么弄?三步教你电子印章在线生成免费教程!

在这个数字化快速发展的时代&#xff0c;电子印章已经成为日常商务活动中不可或缺的一部分。相对于传统的实体印章&#xff0c;电子印章具有更高的便捷性和安全性&#xff0c;更是无纸化办公中必不可少的一环。那么&#xff0c;电子印章怎么弄呢&#xff1f;跟着下面这三步来操…

Map and Set

map and set 文章目录 map and set前言搜索树<1> 操作-查找<2> 操作-插入<3> 操作-删除<4> 代码展示<5> 性能分析 Map 和 Set 概念及应用场景Map 和 Set 模型分析Map 的使用<1> Map常用方法说明<3> TreeMap 演示<2> Entry 内部…

[git] cherry pick 将某个分支的某次提交应用到当前分支

功能&#xff1a;将某个分支的某次提交应用到当前分支 应用场景&#xff1a; 在合并分支时&#xff0c;是将源分支的所有内容都合并到目标分支上&#xff0c;有的时候我们可能只需要合并源分支的某次或某几次的提交&#xff0c;这个时候我们就需要使用到git的cherry-pick操作…

超级APP,All in one APP

在信息化时代&#xff0c;企业需要处理的数据和使用的各种系统繁多复杂。然而&#xff0c;传统的应用往往孤立存在&#xff0c;导致数据无法流动和系统无法高效对接。WorkPlus作为一款超级APP&#xff0c;以其全面的功能和强大的集成能力&#xff0c;实现了数据到系统的全方位集…

GitHub Copilot Chat将于12月全面推出;DeepLearning.AI免费新课

&#x1f989; AI新闻 &#x1f680; GitHub Copilot Chat将于12月全面推出&#xff0c;提升开发者的生产力 摘要&#xff1a;GitHub宣布将于12月全面推出GitHub Copilot Chat&#xff0c;这是GitHub Copilot的一个新功能&#xff0c;旨在帮助开发者编写代码。它能够集成到开…