【2023】Git版本控制-本地仓库详解

这篇具有很好参考价值的文章主要介绍了【2023】Git版本控制-本地仓库详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.Git是什么?它能做什么?


Git是一个分布式版本控制系统,它主要用于跟踪和管理软件项目的源代码。它可以帮助开发人员在不同的团队成员之间协同工作,记录代码的修改历史,轻松地回滚到以前的版本,以及合并不同的代码分支。

Git分为三个区域:

  • 工作区域
  • 暂存区域
  • 版本库

Git的主要作用包括:

  • 版本控制:Git能够记录代码的每一次修改,并提供了强大的版本控制功能,使得开发人员可以轻松地查看和恢复到以前的版本。
  • 分支管理:Git允许开发人员创建多个分支来并行开发不同的功能或修复不同的bug。这样可以避免直接在主分支上进行修改,保证代码的稳定性。
  • 团队协作:Git支持多人协作开发,开发人员可以将自己的代码推送到远程仓库,并将其他人的修改合并到自己的本地仓库中。
  • 历史记录:Git会详细记录每次代码提交的信息,包括作者、时间、修改内容等,方便开发人员回溯查看代码的变更历史。
  • 分布式管理:Git是一种分布式版本控制系统,每个开发人员都可以有自己的本地仓库,可以在没有网络连接的情况下进行代码修改和提交。

2.安装Git

在centos上安装Git

yum -y install git

3.Git版本管理

3.1.Git初始化(创建仓库)

  • 选择要进行初始化的目录
  • 执行初始化命令
  • 查看目录,发现多了一个git目录
[root@jenkins ~]# mkdir /cangku
[root@jenkins ~]# cd /cangku/
[root@jenkins cangku]# git init
Initialized empty Git repository in /cangku/.git/
[root@jenkins cangku]# ls -a
.  ..  .git
  • 查看状态
[root@jenkins cangku]# git status
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)

当前是在master分支上;当前工作环境是干净的;可以使用git add将文件添加到暂存区。

3.2.提交代码

  • 创建一个文件
[root@jenkins cangku]# echo "hello git" >> file1.txt
[root@jenkins cangku]# ls
file1.txt
  • 将文件提交到暂存区
[root@jenkins cangku]# git add file1.txt
[root@jenkins cangku]# git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#	new file:   file1.txt
#

状态内容为:暂存区有一个新文件,如果你想取消提交可以执行那条命令。

  • 将文件从暂存区提交到本地仓库
[root@jenkins cangku]# git commit -m "第一次提交 --v1"

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'root@jenkins.(none)')

会发生报错,会让你配置邮箱和你是谁:将邮箱和名称替换成你自己的。

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

重新提交文件:

[root@jenkins cangku]# git commit -m "第一次提交 --v1"
[master (root-commit) d8c043e] 第一次提交 --v1
 1 file changed, 1 insertion(+)
 create mode 100644 file1.txt
  • 通过git log查看你的提交情况
[root@jenkins cangku]# git log
commit d8c043eda453085620ce8bcc6a3d27ca0d16f34e
Author: Your Name <you@example.com>
Date:   Tue Aug 1 17:37:42 2023 +0800

    第一次提交 --v1

分别记录了代码提交ID,提交人和时间。

3.3.代码回退

  • 重新创建一次提交,定为v2
[root@jenkins cangku]# echo "hello world" >> file1.txt 
[root@jenkins cangku]# git add .
[root@jenkins cangku]# git commit -m "第二次提交 --v2"
[master 7ed5fa3] 第二次提交 --v2
 1 file changed, 1 insertion(+)
[root@jenkins cangku]# git log
commit 7ed5fa310d081176f57661969d4b8b21a718c477
Author: Your Name <you@example.com>
Date:   Tue Aug 1 17:45:28 2023 +0800

    第二次提交 --v2

commit d8c043eda453085620ce8bcc6a3d27ca0d16f34e
Author: Your Name <you@example.com>
Date:   Tue Aug 1 17:37:42 2023 +0800

    第一次提交 --v1

  • 文件内容
[root@jenkins cangku]# cat file1.txt 
hello git
hello world
  • 执行回退操作
[root@jenkins cangku]# git reset --hard d8c043eda
HEAD is now at d8c043e 第一次提交 --v1

回退到哪个版本输入哪个版本的id

  • 查看文件内容
[root@jenkins cangku]# cat file1.txt 
hello git

3.4.代码恢复

回退过去的代码我又想恢复过来怎么办?

  • 查看历史版本记录
[root@jenkins cangku]# git reflog 
d8c043e HEAD@{0}: reset: moving to d8c043eda
2e26871 HEAD@{1}: commit: 第三次提交 -v3
7ed5fa3 HEAD@{2}: commit: 第二次提交 --v2
d8c043e HEAD@{3}: commit (initial): 第一次提交 --v1
  • 恢复到v3版本
[root@jenkins cangku]# git reset --hard 2e26871
HEAD is now at 2e26871 第三次提交 -v3
  • 查看文件
[root@jenkins cangku]# cat file1.txt 
hello git
hello world
hello

已经恢复到v3版本

4.分支


Git分支是一个版本控制机制中的概念,它允许你在同一个代码库中并行开发多个代码线路。

分支通常用于分离出不同的开发线,如稳定版、开发版、实验版等,或者为特定功能创建独立的开发线路。

4.1.创建分支

  • 查看当前分支
[root@jenkins cangku]# git branch 
* master
  • 创建新分支dev
[root@jenkins cangku]# git branch dev
[root@jenkins cangku]# git branch
  dev
* master
  • 切换分支到dev
[root@jenkins cangku]# git checkout dev 
Switched to branch 'dev'
[root@jenkins cangku]# git branch 
* dev
  master

4.2.在分支上提交任务


创建分支时会将之前代码也创建到新分支上

  • 创建一个新文件
[root@jenkins cangku]# vim hehe.py
[root@jenkins cangku]# cat hehe.py 
第一次呵呵呵
  • 提交此文件到版本库
[root@jenkins cangku]# git add .
[root@jenkins cangku]# git commit -m "第一次呵呵呵 -v1"
[dev 750ec9f] 第一次呵呵呵 -v1
 1 file changed, 1 insertion(+)
 create mode 100644 hehe.py
  • 将文件加新内容后第二次提交
[root@jenkins cangku]# echo "第二次呵呵呵" >> hehe.py 
[root@jenkins cangku]# git add .
[root@jenkins cangku]# git commit -m "第二次呵呵呵 -v2"
[dev 3d8cb2a] 第二次呵呵呵 -v2
 1 file changed, 1 insertion(+)
  • 回到主分区会发现看不到dev分支内容
[root@jenkins cangku]# git checkout master 
Switched to branch 'master'
[root@jenkins cangku]# ls
file1.txt

4.3.合并分支

  • 创建一个新分支test
  • 杂谈test分支上为file1.txt文件添加新内容(省略测试部分)
  • 回到master分支
  • test分支内容合并到master分支(需要先切到master分支)
[root@jenkins cangku]# git branch
  dev
* master

[root@jenkins cangku]# git branch test

[root@jenkins cangku]# git checkout test
Switched to branch 'test'
[root@jenkins cangku]# ls
file1.txt

[root@jenkins cangku]# echo "hello hehehe" >> file1.txt 
[root@jenkins cangku]# git add .
[root@jenkins cangku]# git commit -m "这是一次修复 -v1"
[test 2fd525a] 这是一次修复 -v1
 1 file changed, 1 insertion(+)
 
[root@jenkins cangku]# git checkout master 
Switched to branch 'master'
       
[root@jenkins cangku]# git merge test
Updating 2e26871..2fd525a
Fast-forward
 file1.txt | 1 +
 1 file changed, 1 insertion(+)

[root@jenkins cangku]# cat file1.txt 
hello git
hello world
hello
hello hehehe
  • 切换到dev分支
  • master分支合并到dev分支
  • (这里应该是测试,省略,假如测试成功)
  • 回到master分支
  • dev分支内容合并到master分支
[root@jenkins cangku]# git checkout dev 
Switched to branch 'dev'

[root@jenkins cangku]# git merge master 
Merge made by the 'recursive' strategy.
 file1.txt | 1 +
 1 file changed, 1 insertion(+)
 
[root@jenkins cangku]# ls
file1.txt  hehe.py

[root@jenkins cangku]# git checkout master 
Switched to branch 'master'
[root@jenkins cangku]# ls
file1.txt

[root@jenkins cangku]# git merge dev
Updating 2fd525a..0a18968
Fast-forward
 hehe.py | 2 ++
 1 file changed, 2 insertions(+)
 create mode 100644 hehe.py
 
[root@jenkins cangku]# cat file1.txt 
hello git
hello world
hello
hello hehehe
[root@jenkins cangku]# cat hehe.py 
第一次呵呵呵
第二次呵呵呵

4.4.删除分支


当一个分支使用完不需要了需要删除的时候可以使用以下命令

  • 删除分支
[root@jenkins cangku]# git branch -d test
Deleted branch test (was 2fd525a).
[root@jenkins cangku]# git branch 
  dev
* master
  • 强制删除分支(分支未合并到主分支)
[root@jenkins cangku]# git branch -D test



到此一个简单模拟的项目开发的流程结束!文章来源地址https://www.toymoban.com/news/detail-635159.html

到了这里,关于【2023】Git版本控制-本地仓库详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux】:初识git || centos下安装git || 创建本地仓库 || 配置本地仓库 || 认识工作区/暂存区(索引)以及版本库

    Git 原理与使用 课程⽬标 • 技术⽬标:掌握Git企业级应⽤,深刻理解Git操作过程与操作原理,理解⼯作区,暂存区,版本库的含义 • 技术⽬标:掌握Git版本管理,⾃由进⾏版本回退、撤销、修改等Git操作⽅式与背后操作原理 • 技术⽬标:掌握Git分⽀管理,从分⽀创建,切换,

    2024年02月05日
    浏览(46)
  • 本地版本控制工具Git

    明确设计思路,精准定位问题,对于我们后期理解迭代工程有很大的帮助。 这就是我们常说的 40%设计,20%编写和剩下的40%时间进行调试优化 。 今天为大家带来的是 通过Git工具存储和对比具有阶段性成果的代码版本 。 Q1:代码调通了,但是不知道是哪部分导致问题的存在?

    2024年04月28日
    浏览(33)
  • Linux | 分布式版本控制工具Git【版本管理 + 远程仓库克隆】

    本文来为读者介绍一下分布式版本控制工具Git,可能你听说过Gitee/GitHub,里面都带有git的字样,那它们和Git之间有什么关联呢❓ Git又是何物,让我们一起走进本文的学习📖 Git(读音为/gɪt/)是一个 开源的分布式版本控制系统 ,可以有效、高速地处理从很小到非常大的项目

    2024年02月01日
    浏览(51)
  • 【Git】版本控制器详解之git的概念和基本使用

    为了能够更⽅便我们管理不同版本的⽂件,便有了 版本控制器 。所谓的版本控制器,就是⼀个可以记录⼯程的每⼀次改动和版本迭代的⼀个管理系统,同时也⽅便多⼈协同作业。 目前最主流的版本控制器就是Git。Git可以控制电脑上所有格式的文件,例如doc、excel、dwg、dgn、

    2024年02月13日
    浏览(26)
  • 2023 最新 Git 分布式版本控制系统介绍和下载安装使用教程

    Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。 集中式和分布式的区别? 最常见的集中式版本控制系统是SVN,版本库是集中放在中央处理器中的,而干活的时候,用的都是自己电脑,所以首先要从中央服务器那里得到最新的版本,然后开始

    2024年02月09日
    浏览(42)
  • 分布式版本控制系统git详解

    是目前世界上最先进的分布式版本控制系统 git命令 很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。 Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Lin

    2024年02月15日
    浏览(33)
  • 【Xiao.Lei】- Git详解:深入理解分布式版本控制

    在现代软件开发中,版本控制是一个至关重要的方面。Git,作为最流行的分布式版本控制系统之一,为开发者提供了高效、灵活的协作和版本管理工具。本文将深入探讨Git的各个方面,包括基础概念、工作流程、分支管理、团队协作等,并结合详细的命令说明,旨在帮助读者

    2024年01月21日
    浏览(56)
  • IDEA删除本地git仓库、创建本地git仓库、关联其他仓库并上传

      要在 IntelliJ IDEA 中删除本地 Git 仓库并创建新的本地 Git 仓库,以及关联其他仓库并上传,请按照以下步骤进行操作:   1、 IDEA 中“设置”——“版本控制”——“版本映射”里面删除仓库地址数据;   2、在文件系统中,删除项目目录下面的.git文件夹:   3、删

    2024年02月12日
    浏览(35)
  • Jenkins添加凭据(连接git仓库)

    1、输入地址和添加代码访问权限者后提示: 无法连接仓库:Command “git ls-remote -h – http://39.104.186.147/fieldmonitoring-v2/fieldmonitoring-web-v2.0.git HEAD” returned status code 128: stdout: stderr: remote: HTTP Basic: Access denied fatal: Authentication failed for ‘http://39.104.186.147/fieldmonitoring-v2/fieldmonitoring-w

    2024年02月06日
    浏览(40)
  • git 怎么导入本地仓库-将本地文件夹添加到Git仓库

    1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 2、把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所有文件 3、用命令 git commit告诉Git,把文件提交到仓库。引号内为提交说明 4、关

    2023年04月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包