news 2026/4/23 14:44:03

1.基本操作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
1.基本操作

1.基本介绍

为了能够更⽅便我们管理不同版本的⽂件,便有了版本控制器,所谓的版本控制器,就是能让你了解到⼀个⽂件的历史,以及它的发展过程的系统,通俗的讲就是⼀个可以记录⼯程的每⼀次改动和版本迭代的⼀个管理系统,同时也⽅便多⼈协同作业。 ⽬前最主流的版本控制器就是 Git 。Git 可以控制电脑上所有格式的⽂件,例如 doc、excel、dwg、 dgn、rvt等等,对于我们开发⼈员来说,Git 最重要的就是可以帮助我们管理软件开发项⽬中的源代码⽂件!

2.Git安装

2.1Linux-Centos

(1)安装git

sudoyum -yinstallgit

(2)查看版本

git--version

2.2Linux-ubuntu

(1)安装git

sudoapt-getinstallgit-y

(2)查看版本

git--version

3.基本操作

3.1创建本地仓库

仓库是进⾏版本控制的⼀个⽂件⽬录,我们要想对⽂件进⾏版本控制,就必须先创建 ⼀个仓库出来,创建⼀个 Git 本地仓库对应的命令为 git init ,注意命令要在⽂件⽬录下执⾏

可以发现,当前目录多了个.git隐藏文件,.git⽬录是 Git 来跟踪管理仓库的

使用tree命令查看细节

3.2配置git

安装 Git 后⾸先要做的事情是设置你的⽤⼾名称 和 e-mail 地址

-global 是⼀个可选项,如果使⽤了该选项,表⽰这台机器上所有的 Git 仓库都会使⽤这个配置

删除对应配置可用unset命令

gitconfig[--global]--unset user.namegitconfig[--global]--unset user.email

4.认识分区

  • ⼯作区:是在电脑上你要写代码或⽂件的⽬录。
  • 暂存区:英⽂叫 stage 或 index。⼀般存放在 .git ⽬录下的 index ⽂件(.git/index)中,我们把暂存区有时也叫作索引(index)。
  • 版本库:⼜名仓库,英⽂名 repository 。⼯作区有⼀个隐藏⽬录 .git ,它不算⼯作区,⽽是 Git 的版本库。这个版本库⾥⾯的所有⽂件都可以被 Git 管理起来,每个⽂件的修改、删除,Git 都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

  • 图中左侧为⼯作区,右侧为版本库。Git 的版本库⾥存了很多东西,其中最重要的就是暂存区。 在创建 Git 版本库时,Git 会为我们⾃动创建⼀个唯⼀的 master 分⽀,以及指向 master 的⼀个指针叫 HEAD。
  • 当对⼯作区修改(或新增)的⽂件执⾏ git add 命令时,暂存区⽬录树的⽂件索引会被更新。
  • 当执⾏提交操作 git commit 时,master 分⽀会做相应的更新,可以简单理解为暂存区的⽬录树才会被真正写到版本库中。

5.添加文件

5.1场景一

(1)add命令

  • 添加⼀个或多个⽂件到暂存区:git add[file1] [file2****] …
  • 添加指定⽬录到暂存区,包括⼦⽬录:git add[dir****]
  • 添加当前⽬录下的所有⽂件改动到暂存区:git add ****.

(2)commit命令

  • 提交暂存区全部内容到本地仓库中:git commit-m “message”
  • 提交暂存区的指定⽂件到仓库区:git commit[file1] [file2] … -m “message”

message内填充的是提交细节,不能忽略

(3)log命令

使⽤ git log 命令,来查看下历史提交记录

该命令显⽰从最近到最远的提交⽇志,并且可以看到我们 commit 时的⽇志消息;如果嫌输出信息太多,看得眼花缭乱的,可以试试加上 --pretty=oneline 参数:

(4)查看.git文件

使用tree .git/命令

index 就是我们的暂存区,add 后的内容都是添加到这⾥的。

HEAD 就是我们的默认指向 master 分⽀的指针:

默认的master分支保存的就是当前最新的 commit id

5.2情景二

(1)查看仓库状态:git status

(2)查看工作区和暂存区差异:git diff

(3)版本回退

执⾏ git reset 命令⽤于回退版本,可以指定退回某⼀次提交的版本,回退本质是要将版本库中的内容进⾏回退,⼯作区或暂存区是否回退由命令参数决定

git reset 命令语法格式为: git reset [–soft | –mixed | –hard] [HEAD]

  • –mixed 为默认选项,使⽤时可以不⽤带该参数。该参数将暂存区的内容退回为指定提交版本内容,⼯作区⽂件保持不变。
  • –soft 参数对于⼯作区和暂存区的内容都不变,只是将版本库回退到某个指定版本。
  • –hard 参数将暂存区与⼯作区都退回到指定版本。切记⼯作区有未提交的代码时不要⽤这个命令,因为⼯作区会回滚,你没有提交的代码就再也找不回了,所以使⽤该参数前⼀定要慎重。

HEAD 说明: 可直接写成 commit id,表⽰指定退回的版本 ,HEAD 表⽰当前版本 ,HEAD^ 上⼀个版本 ,HEAD^^ 上上⼀个版本,以此类推… 可以使⽤ 〜数字表⽰: HEAD~0 表⽰当前版本 ,HEAD~1 上⼀个版本 ,HEAD~2 上上⼀个版本,以此类推…

(4)git reflog命令

该命令⽤来记录本地的每⼀次命令

(5)git checkout命令

使⽤ git checkout – [file] 命令让⼯作区的⽂件回到最近⼀次 add 或 commit 时的状态

5.3情景三

要删⽂件,⽬前除了要删⼯作区的⽂件,还要清除版本库的⽂件。⼀般⾛到这⾥,有两种可能:

  • 不⼩⼼删错了
  • 确实要从版本库中删除该⽂件

(1)不小心删错了

使用git恢复

gitcheckout -- file5

(2)只删除了⼯作区的⽂件。

这时就需要使⽤ git rm 将⽂件从暂存区和⼯作区中删除,并且 commit

gitrmfile5gitcommit -m"deleted file5"
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 13:02:34

XHook终极指南:轻松拦截和修改HTTP请求与响应

XHook终极指南:轻松拦截和修改HTTP请求与响应 【免费下载链接】xhook Easily intercept and modify XHR request and response 项目地址: https://gitcode.com/gh_mirrors/xho/xhook 在现代Web开发中,HTTP请求拦截和响应修改是提升应用性能和调试…

作者头像 李华
网站建设 2026/4/19 13:45:34

界面设计建议生成模型

ms-swift:大模型全链路工程化的统一框架 在AI技术飞速演进的今天,一个现实问题摆在开发者面前:为什么我们有了如此强大的大语言模型和多模态能力,却仍然难以快速构建稳定、可落地的智能系统?研究者或许能在几天内复现一…

作者头像 李华
网站建设 2026/4/23 11:14:06

Unity脚本资源宝库:提升开发效率的终极解决方案

Unity脚本资源宝库:提升开发效率的终极解决方案 【免费下载链接】Unity-Script-Collection A maintained collection of useful & free unity scripts / librarys / plugins and extensions 项目地址: https://gitcode.com/gh_mirrors/un/Unity-Script-Collec…

作者头像 李华
网站建设 2026/4/18 10:40:13

5分钟上手Catime:让时间管理变得像撸猫一样轻松

5分钟上手Catime:让时间管理变得像撸猫一样轻松 【免费下载链接】Catime A very useful timer (Pomodoro Clock).[一款非常好用的计时器(番茄时钟)] 项目地址: https://gitcode.com/gh_mirrors/ca/Catime 你是否曾经因为忘记会议时间而尴尬?或者学…

作者头像 李华
网站建设 2026/4/23 13:03:30

WeKnora完整学习指南:从零基础到企业级RAG实战专家

WeKnora完整学习指南:从零基础到企业级RAG实战专家 【免费下载链接】WeKnora LLM-powered framework for deep document understanding, semantic retrieval, and context-aware answers using RAG paradigm. 项目地址: https://gitcode.com/GitHub_Trending/we/W…

作者头像 李华
网站建设 2026/4/23 13:02:25

可编程逻辑控制器中硬件电路时序配合深度讲解

PLC硬件电路时序设计:从信号延迟到系统稳定性的实战解析在工业自动化现场,一个看似简单的“启停控制”背后,可能隐藏着复杂的硬件时序博弈。你有没有遇到过这样的情况:程序逻辑明明无误,但设备就是偶尔误动作&#xff…

作者头像 李华