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

【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 :显示特定提交的详细信息。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

c++day6

#include <iostream>using namespace std; class Animal { public:virtual void peform() 0; }; class Monekey:public Animal { public:void peform(){cout << "猴子黑桃A" << endl;} }; class Elepthant:public Animal {void peform(){cout &l…

软文推广中如何搭建媒体矩阵

媒体矩阵简单理解就是在不同的媒体平台上&#xff0c;根据运营目标和需求&#xff0c;建立起全面系统的媒体布局&#xff0c;进行多平台同步运营。接下来媒介盒子就来和大家聊聊&#xff0c;企业在软文推广过程中为什么需要搭建媒体矩阵&#xff0c;又该如何搭建媒体矩阵。 一、…

LeetCode_多源 BFS_中等_2258.逃离火灾

目录 1.题目2.思路3.代码实现&#xff08;Java&#xff09; 1.题目 给你一个下标从 0 开始大小为 m x n 的二维整数数组 grid &#xff0c;它表示一个网格图。每个格子为下面 3 个值之一&#xff1a; 0 表示草地。1 表示着火的格子。2 表示一座墙&#xff0c;你跟火都不能通过…

能源监测管理系统有哪些作用与效果?

随着全球能源的不断增加&#xff0c;能源的有限性与环境问题日益严重&#xff0c;用能管理企业需要一种高效的方法来管理能源与利用能源&#xff0c;因此能源监测管理系统成为了一种不可或缺的工具。 能源监测管理系统的重要性 1、实现节能减排的目标 通过系统&#xff0c;可…

Visual Studio2022安装教程【图文详解】(大一小白)编译软件

工欲善其事&#xff0c;必先利其器。想要学好编程&#xff0c;首先要把手中的工具利用好&#xff0c;今天小编教一下大家如何下载安装并使用史上最强大的编译器--Visual Studio&#x1f357; 一.Visual Studio下载及安装 https://visualstudio.microsoft.com/ 打开文件 点击.ex…

【计算机网络笔记】网络层服务模型——数据报网络

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08;2&#xff09;…

STM32-EXTI中断

EXTI简介 EXTI&#xff08;Extern Interrupt&#xff09;外部中断 EXTI可以监测指定GPIO口的电平信号&#xff0c;当其指定的GPIO口产生电平变化时&#xff0c;EXTI将立即向NVIC发出中断申请&#xff0c;经过NVIC裁决后即可中断CPU主程序&#xff0c;使CPU执行EXTI对应的中断程…

算法进阶指南图论 最优贸易

最优贸易 题目描述 C C C 国有 n n n 个大城市和 m m m 条道路&#xff0c;每条道路连接这 n n n 个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这 m m m 条道路中有一部分为单向通行的道路&#xff0c;一部分为双向通行的道路&#xff0c;双向通行的…

如何卸载在linux下通过rpm安装的mysql

目录 1.先关闭MySQL服务并查看运行状态 2.使用 rpm 管道命令的方式查看已安装的mysql 3. 使用rpm -ev 命令移除安装 4. 删除MySQL数据库内容 1.先关闭MySQL服务并查看运行状态 如果之前安装过并已经启动&#xff0c;则需要卸载前请先关闭MySQL服务 systemctl stop mysqld…

图论09-桥和割点

文章目录 1 寻找桥的算法2 桥的代码实现3 寻找割点的算法4 割点的代码实现 1 寻找桥的算法 2 桥的代码实现 package Chapt06_Bridge;import java.util.ArrayList;public class FindBridges {private Graph G;private boolean[] visited;//ord数组记录访问的顺序private int or…

vue使用websocket与springboot通信

WebSocket是HTML5下一种新的协议&#xff0c;它实现了浏览器与服务器全双工通信&#xff0c;能更好的节省服务器资源和带宽并达到实时通讯的目的 在很多项目中&#xff0c;都要用到websocket&#xff0c;使得前端页面与后端页进行实时通信&#xff0c;例如&#xff0c;实时查询…

【漏洞复现】深信服下一代防火墙NGAF存在任意文件上传漏洞 附POC

漏洞描述 深信服下一代防火墙(Next-Generation Application Firewall)NGAF是面向应用层设计,能够精确识别用户、应用和内容,具备完整安全防护能力,能够全面替代传统防火墙,并具有强劲应用层处理能力的全新网络安全设备。NGAF解决了传统安全设备在应用识别、访问控制、内…

【数据结构】树与二叉树(六):二叉树的链式存储

文章目录 5.1 树的基本概念5.1.1 树的定义5.1.2 森林的定义5.1.3 树的术语5.1.4 树的表示 5.2 二叉树5.2.1 二叉树1. 定义2. 特点3. 性质引理5.1&#xff1a;二叉树中层数为i的结点至多有 2 i 2^i 2i个&#xff0c;其中 i ≥ 0 i \geq 0 i≥0。引理5.2&#xff1a;高度为k的二叉…

Node Sass version 9.0.0 is incompatible with ^4.0.0.

1.错误产生原因&#xff1a; node、 node-sass 和sass-loader的版本对应问题 2.解决方案&#xff1a; 删除之前的 npm uninstall node-sass sass-loader 安装指定的 npm i node-sass4.14.1 sass-loader7.3.1 --save -dev

JAVA将List转成Tree树形结构数据和深度优先遍历

引言&#xff1a; 在日常开发中&#xff0c;我们经常会遇到需要将数据库中返回的数据转成树形结构的数据返回&#xff0c;或者需要对转为树结构后的数据绑定层级关系再返回&#xff0c;比如需要统计当前节点下有多少个节点等&#xff0c;因此我们需要封装一个ListToTree的工具类…

Linux常见指令:从基础到理论

前言 目录 前言 1. find指令 拓展 2. grep指令 拓展 sort指令 uniq指令 wc指令 3. zip/unzip指令 4. tar指令 5. uname指令 拓展 6. Linux常用热键 7. 关机 8. rz指令 拓展 scp指令 9. shell命令以及运行原理 Linux常见指令是使用Linux系统时必不可少的一部分。通过掌握…

四种常见分布式限流算法实现!

转载&#xff1a;四种常见分布式限流算法实现&#xff01; - 知乎 大家好&#xff0c;我是老三&#xff0c;最近公司在搞年终大促&#xff0c;随着各种营销活动“组合拳”打出&#xff0c;进站流量时不时会有一个小波峰&#xff0c;一般情况下&#xff0c;当然是流量越多越好&…

maven 下载和安装

点击进入Maven下载网址 Maven – Download Apache Maven Maven详细下载列表 Index of /dist/maven/maven-3 本地仓库配置文件 配置环境变量 idea编辑器配置 maven Javajdk配置 字节码版本是否11

基于React使用swiperjs实现竖向滚动自动轮播

很多文章&#xff0c;都只提供了js部分&#xff0c;包括官方的文档也只有js部分&#xff0c;如果css设置不正确&#xff0c;会导致轮播图不自动播放。 使用的swiper版本&#xff1a;v11.0.3 文档 https://swiperjs.com/get-startedhttps://swiperjs.com/react 实现效果 使…

华为云交换数据空间 EDS:“可信、可控、可证”能力实现你的数据你做主

文章目录 前言一、数据安全流通价值的必要性和紧迫性1.1、交换数据空间&#xff08;EDS&#xff09;背景1.2、《数字中国建设整体布局规划》1.3、数据流通成为制约数据要素价值释放的瓶颈 二、华为云 EDS 解决方案介绍2.1、构建可控数据交换空间2.2、可控的数据交换框架2.3、定…