当前位置: 首页 > article >正文

技术栈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.kler.cn/a/391731.html

相关文章:

  • 【C++】一种针对代码的连续条件检查方案,累计布尔结果
  • 24.11.13 Javascript3
  • 使用jmeter查询项目数据库信息,保存至本地txt或excel文件1108
  • HarmonyOS Next星河版笔记--界面开发(4)
  • 金价大跌,特朗普胜选或成导火索
  • D67【python 接口自动化学习】- python基础之数据库
  • pycharm快速更换虚拟环境
  • 文档数字化采集与智能处理:图像弯曲矫正技术概述
  • golang 泛型 middleware 设计模式: 一次只做一件事
  • (已解决)Java不是内部或者外部命令,也不是可运行的程序
  • 工位管理新纪元:Spring Boot企业系统
  • Chrome使用IE内核
  • SCUI Admin + Laravel 整合
  • 网络安全-蓝队基础
  • 科学计算服务器:如何计算算力?如何提升科学研究效率?
  • 音视频入门基础:MPEG2-TS专题(4)——使用工具分析MPEG2-TS传输流
  • Python、selenium 自动化 - 实现自动上传外部文件
  • Flutter 小技巧之 OverlayPortal 实现自限性和可共享的页面图层
  • 设计模式(四)装饰器模式
  • RHEL 网络配置(Linux网络服务器 09)
  • ubuntu20.04安装anaconda与基本使用
  • 黑马程序员Docker学习【持续更新】
  • 电子商务网站之首页设计
  • 【论文解读CVPR2024】Scaffold-GS: Structured 3D Gaussians for View-Adaptive Rendering
  • 【JavaEE进阶】Spring 事务和事务传播机制
  • 《硬件架构的艺术》笔记(二):时钟与复位