技术栈2:Git分布式版本控制工具

目录

1.版本控制器

2.Git概述

3.Git常用命令

4.获取本地仓库

5.基础操作指令           

6.gitignore文件

7.分支与合并

8.远程仓库


1.版本控制器

1.1集中式版本控制器

集中式版本控制工具,版本库是集中存放在中央服务器的,team里每个人work时从中央服务器下载代码,是必须联网才能工作,局域网或互联网。个人修改后然后提交到中央版本库,例如:SVN和CVS

1.2分布式版本控制器

分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样工作的时候,无需要联网了因为版本库就在你自己的电脑上。多人协作只需要各自的修改推送给对方,就能互相看到对方的修改了,例如:Git

2.Git概述

Git是一个分布式版本控制系统,用于跟踪代码、文档等文件的更改。它可以记录文件的每次修改,方便开发者管理项目版本,并且可以在团队合作中协调多人开发。(类似于腾讯在线文档)Git的核心要点是有一个本地仓库和远程仓库,Git的主要特点有:

  1. 分布式
    Git是分布式的,每个开发者的本地都拥有完整的项目历史记录和版本库,不依赖中央服务器。这使得在本地进行操作(如查看历史、切换版本等)非常快,而且允许在没有网络的情况下工作。

  2. 版本管理
    Git会记录文件的每次更改,生成一个“快照”并赋予唯一的哈希值(commit ID),通过这些快照,可以随时查看、恢复或比较项目在不同时间点的状态。

  3. 分支与合并
    Git支持轻量的分支操作,开发者可以在不同分支上并行开发不同的功能,然后合并到主分支。分支的操作(如创建、切换、删除)在Git中非常高效。

  4. 多用户协作
    Git支持多人协作开发,可以通过远程仓库(如GitHub、GitLab、Bitbucket)分享和同步代码,开发者可以提交自己的代码,也可以将他人的代码合并到自己的分支。

3.Git常用命令

  • Git GuI:Git提供的图形界面工具
  • Git Bash:Git提供的命令行工具

设置用户信息

  • git config --global user.name name
  • git config --global user.email 邮箱

查看配置信息

  • git config --global user.name
  • git config --global user.email

常用指令

  • Is/ll 查看当前目录
  • cat 查看文件内容
  • touch 创建文件
  • git status 查看修改状态(untracked未跟踪、unstaged未缓存、staged)
  • git log 查看提交日志 git log --pretty=oneline --abbrev-commit --graph(可以取别名)

还可以给常用指令配置别名05_git环境配与安装_哔哩哔哩_bilibili

4.获取本地仓库

要使用Git对我们的代码进行版本控制,首先需要获得本地仓库:

  1. 在电脑的任意位置创建一个空目录(例如myGit)作为我们的本地Git仓库
  2. 进入这个目录中,点击右键打开Git bash窗口
  3. 执行命令git init
  4. 如果创建成功后可在文件夹下看到隐藏的.git目录

                                                                                                                                      5.基础操作指令           

在本地仓库目录下除了.git文件夹,其他的都称为工作目录

  • git add (工作区 -- 暂存区)
  • git commit 提交暂存区内容到本地仓库的当前分支
  • git reset --hard commitID 版本切换 
  • git reflog 可以看到已经删除的提交记录

6.gitignore文件

.gitignore 文件是一个文本文件,通常放在 Git 项目的根目录,用来告诉 Git 哪些文件或目录应该被忽略,不纳入版本控制中。.gitignore 文件中列出了一些不需要跟踪的文件或文件夹的规则。典型的内容包括:

  • 编译生成的文件(如 .class.exe.dll 等)
  • 临时文件或系统文件(如 *.logThumbs.db.DS_Store
  • 项目特有的配置文件(如 IDE 配置文件)
  • 依赖文件夹(如 node_modules/vendor/

使用方法:在 .gitignore 文件中,每一行表示一条规则。例如:

# 忽略所有 .log 文件
*.log# 忽略特定目录
temp/
build/# 忽略所有 .txt 文件,除非是 `notes.txt`
*.txt
!notes.txt

注意:.gitignore 仅对未被跟踪的文件有效,对于已经纳入 Git 的文件,需要先通过命令 git rm  --cached 文件名 从暂存区移除,然后添加 .gitignore 规则

通过 .gitignore,可以简化版本控制的管理,避免提交不必要的文件。

7.分支与合并

Git 的分支和合并是版本控制中非常重要的概念。它们允许我们在不同的开发线上并行工作,并最终将各自的更改合并到一个共同的分支中,方便协作开发和功能迭代。Git的分布式版本控制就是通过不同分支以及它们的合并实现的。

  • git branch 分支名  #创建分支
  • git checkout 分支名  #切换到新分支
  • git branch  #查看分支
  • git checkout main  #切换到主分支
  • git merge 分支名  #合并其他分支

8.远程仓库

Git 的远程仓库是指托管在网络服务器上的 Git 仓库,它允许多个开发者协作开发、同步代码和共享进展。常用的远程仓库平台包括 GitHub、GitLab 和 Bitbucket。

1.添加远程仓库

要将一个本地 Git 仓库与远程仓库关联,可以使用git remote add命令:

git remote add origin 远程仓库URL
  • origin是默认的远程仓库名称。通常建议使用 origin 作为主要仓库的名称

  • 远程仓库URL是仓库在远程平台上的链接,比如 HTTPS (https://github.com/user/repo.git) 或 SSH (git@github.com:user/repo.git) 地址

2.查看远程仓库

要查看本地仓库当前关联的远程仓库及其 URL,可以使用以下命令:

​​​​​​​git remote -v

3. 推送到远程仓库

将本地分支的更改推送到远程仓库,通常使用以下命令:

git push origin 分支名
  • 如果是首次推送,可以使用 -u 参数将本地分支与远程分支关联,这样之后可以直接用 git push 推送:git push -u origin 分支名

4. 拉取远程仓库更新

要同步远程仓库的最新内容,可以使用 git pull 命令,拉取并合并远程的更新:

git pull origin 分支名

5. 克隆远程仓库

要创建一个远程仓库的本地副本,可以使用 git clone 命令:

git clone 远程仓库URL
  • 这会在本地创建一个新的目录,包含远程仓库的所有内容,并自动关联到远程 origin

  • 例如:git clone https://github.com/user/repo.git

6. 删除远程仓库

如果不再需要与某个远程仓库的关联,可以使用以下命令删除它:

git remote remove 远程仓库名

例如,删除 origingit remote remove origin

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

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

相关文章

【ARM Coresight OpenOCD 系列 5 -- arp_examine 使用介绍】

文章目录 OpenOCD arp_examine 使用 OpenOCD arp_examine 使用 因为我们很多时候运行 Openocd 的时候有些 core 还没有启动, 所以最好在配置脚本中添加 -defer-examine这个参数, 如下: #cortex-m33 target create ${_CHIPNAME}.m33 cortex_m -dap ${_CHIPNAME}.da…

计算机毕业设计Python+大模型斗鱼直播可视化 直播预测 直播爬虫 直播数据分析 直播大数据 大数据毕业设计 机器学习 深度学习

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

CAN总线位同步的使用以及总线仲裁规则详解

目录 1. 位同步 1.1 位时序 1.2 硬同步 1.3 再同步 1.4 波特率计算 2. 仲裁 2.1 先占先得 2.2 非破坏性仲裁 1. 位同步 CAN总线没有时钟线,总线上的所有设备通过约定波特率的方式确定每一个数据位的时长,发送方以约定的位时长每隔固定时…

Python爬虫开发中的分析与方案制定

网站分析作为获取数据的重要手段,其重要性不言而喻。Python作为一种强大的编程语言,因其简洁的语法和强大的库支持,成为开发爬虫的首选工具。本文将深入探讨Python爬虫开发中的分析与方案制定,并在代码中加入代理信息,…

深入理解接口测试:实用指南与最佳实践5.0(一)

✨博客主页: https://blog.csdn.net/m0_63815035?typeblog 💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 📢博客专栏: https://blog.csdn.net/m0_63815035/cat…

基于Matlab 火焰识别技术

课题介绍 森林承担着为人类提供氧气以及回收二氧化碳等废弃气体的作用,森林保护显得尤其重要。但是每年由于火灾引起的事故不计其数,造成重大的损失。如果有一款监测软件,从硬件处获得的图像中监测是否有火焰,从而报警&#xff0…

Python酷库之旅-第三方库Pandas(209)

目录 一、用法精讲 976、pandas.MultiIndex.set_codes方法 976-1、语法 976-2、参数 976-3、功能 976-4、返回值 976-5、说明 976-6、用法 976-6-1、数据准备 976-6-2、代码示例 976-6-3、结果输出 977、pandas.MultiIndex.to_frame方法 977-1、语法 977-2、参数…

SQL 窗口函数

窗口函数用于在不改变查询结果集行数的情况下,对每一行执行聚合计算或其他复杂的计算,可以跨行计算。 随着窗口函数的出现,无须再使用关联子查询。窗口函数的可读性很好,代码也很简洁。 1 实践 1.1 营业额年度变化 需求&#…

36.Redis核心设计原理

本文针对前面的讲解做一次总结 1.Redis基本特性 1.非关系型的键值对数据库,可以根据键以O(1)的时间复杂度取出或插入关联值 2.Redis的数据是存在内存中的 3.键值对中键的类型可以是字符串,整型,浮点型等,且键是唯一的 4.键值对中…

《人工智能网络安全现状(2024)》深度解读:机遇、挑战与应对策略

在当今数字化浪潮汹涌澎湃的时代,人工智能(AI)与网络安全已然深度交融,二者相互作用所塑造的发展态势正深刻重塑着我们的信息安全格局。《人工智能网络安全现状(2024)》这份报告恰似一盏明灯,为…

光控资本 :股票支撑位是什么?股票支撑位怎么找?

股票支撑位是指在股票价格的前史K线走势有两次或者两次以上,出现下跌到某一方位,股票就出现反弹的走势,则投资者可以把这个方位称为支撑位,支撑位阐明下方托单较多,个股无法持续下跌,在托单的影响下&#x…

网站小程序app怎么查有没有备案?

网站小程序app怎么查有没有备案?只需要官方一个网址就可以,工信部备案查询官网地址有且只有一个,百度搜索 "ICP备案查询" 找到官方gov.cn网站即可查询! 注:网站小程序app备案查询,可通过输入单位…

STM32+AI语音识别智能家居系统

基于 STM32 和 AI 语音识别的智能家居系统的详细硬件和软件设计,包括各个模块的详细描述和代码示例。 一、硬件设计 1. 微控制器(STM32): 选择 STM32F7 系列或更高性能的芯片,如 STM32F767ZIT6,以满足处理…

【初阶一】初识c语言

【初阶一】初识c语言 一、为什么学C语言?二、学习前的准备1.搭建编译环境以及使用2.代码库GitHub/Gitee创建以及使用3.写博客的作用以及教学 三、个人感悟 一、为什么学C语言? C语言是一门经久不衰的计算机编程语言,有句话叫:万物…

Linux DRM 那些事 - HDMI 接口 DTS 配置

本文基于RockPI 4A单板Debian系统 Linux 4.4 内核介绍DRM框架HDMI接口DTS配置。 在DTS中主要实现:HDMI的使能、VOP绑定、IOMUX引脚配置和HDMI控制器配置。 一、HDMI 配置 文件:arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi #include "rk3…

QT仿QQ聊天项目,第三节,实现聊天界面

一,界面控件示意图 界面主要由按钮QPushButton,标签QLabel,列表QListWidget 要注意的是QListWidget既是实现好友列表的控件,也是实现聊天气泡的控件 二,控件样式 QPushButton#btn_name {border:none;}QPushButton#btn_close {border:1px;bac…

前端学习八股资料CSS(二)

更多详情:爱米的前端小笔记,更多前端内容,等你来看!这些都是利用下班时间整理的,整理不易,大家多多👍💛➕🤔哦!你们的支持才是我不断更新的动力!找…

项目笔记:在stm32f103c8上用DMA控制串口收发

一、传统串口收发与引入DMA控制的区别 传统串口收发每一步都经过CPU处理和控制,当总线数据量大且频繁时CPU要反复地进入中断中处理,而引入DMA的差异就在于DMA会自动处理这个过程,并不需要占用CPU。 二、在不同芯片上所包含的DMA数量不同 对于…

基于SpringBoot的“原创歌曲分享平台”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“原创歌曲分享平台”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 平台功能结构图 平台首页界面图 用户注册界面…

CLion配置QT开发环境

一、将qmake工程转为cmake工程(方法一:用工具转换并做适当修改) 1、工具链接:链接:https://pan.baidu.com/s/1grW2QY3sW8X2JaHWM_ePPw 提取码:7at4 工具源码:https://github.com/milahu/qmake2cmake 2、执行…