首页 > 其他分享 >git工作流区域

git工作流区域

时间:2025-01-15 16:22:51浏览次数:1  
标签:文件 git 本地 区域 仓库 工作 暂存区 提交

一、主要区域

  1. 工作目录
    • 作用:本地系统中的文件夹
    • 文件状态
      • 未跟踪:文件刚添加到工作目录,还没有被Git管理(还没有git add)
      • 已跟踪:Git已经对这个文件进行过管理,Git在本地仓库中有这个文件的历史记录。
        • 未修改:该文件没有再做任何修改。
        • 已修改:修改过了,但是没有使用git add来通知Git,这个文件被修改了。
        • 已删除:删除了,但是没有使用git add来通知Git,这个文件已经被删除了。
  2. 暂存区
    • 作用:存储经过git add,但是没有git commit的文件。可以认为是缓存区域。
  3. 本地仓库
    • 作用:存储所有的提交记录、分支信息、标签等数据。
    • 提交历史:每次使用git commit,Git会将暂存区内容保存到本地仓库,并为该提交创建一个唯一的提交ID。这些提交记录形成了项目的版本历史。
    • 本地分支:可以在本地仓库中创建和切换分支
  4. 远程仓库
    • 作用:远程仓库可以托管代码。
    • 同步:远程仓库允许不同的开发者之间共享代码,并且支持推送(git push)和拉取(git pull)。

二、各个区域的交互

  1. 工作区→暂存区:
    • 对文件做出修改后,可以使用git add file,将这些修改添加到暂存区。
  2. 暂存区→工作区
    • 撤销暂存区中的文件,决定不提交git restore --staged file,相当于撤销git add
  3. 工作区→本地仓库
    • 直接提交,不先放入暂存区git commit -a,把所有【已跟踪的文件】全部提交
      • 【未跟踪的文件】不会被提交
      • 【暂存区的文件】同样会被提交
  4. 本地仓库→工作区
    • 变回之前提交的状态git reset --hard 提交版本号
  5. 暂存区→本地仓库:
    • 使用git commit -m "注释"命令将暂存区中的所有文件提交到本地仓库。
  6. 本地仓库→暂存区
    • 使用git reset --soft 提交版本号
  7. 本地仓库→远程仓库
    • 想要把本地仓库的更新推送到远程仓库时,可以使用git push
  8. 远程仓库→本地仓库
    • 使用git fetchgit pull命令将远程仓库的最新更新拉取到本地仓库。前者仅更新本地的【远程跟踪分支】,而后者会拉取远程更新并尝试自动合并。

三、案例演示

  1. 新建了一个文件a.txt,此时的状态是


    • 上图,a.txt是一个新文件,此时,就是工作目录中的【未被跟踪状态】
  2. 使用git add a.txt

    此时,文件已经被放到了暂存区。

  3. 此时,我不想跟踪这个文件了,可以使用git rm --cached a.txt


    可以看见,文件又处于工作目录的【未被跟踪】状态

  4. 然后使用git add放入暂存区,同时使用git commit -m "第一次提交",放入本地仓库中。

    此时,内容全部提交了。

  5. 然后修改了a.txt的内容,再次查看状态。

    可以看见和新建文件时的状态不一样,现在的状态是工作目录中的【已跟踪】

  6. 此时,我发现修改的内容出错了,可以使用git restore a.txt恢复到上次【已提交的状态】

    可以看见,恢复成上次提交的内容了

  7. 然后正确修改了a.txt的内容,同时git add a.txt将其加入到暂存区中(这里涉及到工作目录到暂存区的转移

  8. 此时,发现a.txt的内容少了一部分,我希望补上之后,再一起提交,此时我可以先git restore --staged a.txt,从暂存区移回到工作目录。(这里涉及到暂存区到工作目录的转移)


    可以看见,又回到了工作目录了

  9. 添加完内容之后,我希望直接提交了,不希望先到暂存区。使用git commit -a -m "第二次提交"。(这里涉及到工作目录到本地仓库的转移)。git commit -a相当于先把【已被跟踪】的文件全部放入暂存区,然后再git commit。(git commit是将暂存区转移到本地仓库)

    可以看见,全部提交了。

  10. 我突然发现,最近一次提交的部分内容有问题,希望回退到暂存区,使用git reset --soft 3d35 (这里涉及到本地仓库到暂存区的转移),后面的3d35是使用git log查找上一次提交的版本号

    可以看见,已经回到了暂存区了。

  11. 提交内容,$ git commit -m "第二次正确的提交"

  12. 突然发现,最近一次提交的内容,都有问题,要全部修改了,希望回退到第一次提交的内容。使用git reset --hard 3d35(这里涉及到本地仓库到工作目录的转移)

    注意,这和10有什么区别?假设第一次提交的内容是111,然后增加了2222和3333,同时git addgit commit,此时如果是10这种情况,文件的内容就是111和2222和3333;如果是12这种情况,文件内容就只有111了。

标签:文件,git,本地,区域,仓库,工作,暂存区,提交
From: https://www.cnblogs.com/ouyangxx/p/18673273

相关文章

  • 【2024遥感应用组一等奖】基于ENVI Deep Learning的多源SAR影像海带水淹区域提取与分
    作品介绍01应用背景近年来,随着全球气候变化的加剧,海岸带地区面临的洪水威胁日益严重。这些极端天气事件,特别是由热带气旋引发的洪水,不仅给沿海地区带来了巨大的经济损失,还对当地居民的安全和生活产生了深远影响。因此,能够准确识别海岸地区的水淹区域对于防灾减灾、制定应对策......
  • Git命令
    初始化Git仓库gitinit设置git用户名/邮箱$gitconfiguser.name'github用户名'$gitconfiguser.email'邮箱'查看配置(包含:用户名和邮箱等)gitconfig--listgitclonehttps://gitee.com/xxxxx.git分支操作:更新一下分支信息:$gitfetchorigin--prune查看所在目录的分支:$......
  • 如何在电脑桌面上记录每日工作任务清单并准时提醒?
    每天的工作任务很多,而且需要在截止时间就完成,如何能够简单、高效管理每日工作任务呢?我的建议是直接在电脑桌面上记录每日工作任务清单,并设置提醒时间,到期后收到提醒就不会忘记了!接下来给大家介绍2款极简但好用的电脑桌面待办清单APP!一、Win系统自带的日历在Windows电脑上,点击......
  • 2025年——29款顶级项目管理工具,提升工作效率必备!
    在2025年的数字化时代,项目管理已成为企业成功不可或缺的一环。随着技术的飞速发展,各种项目管理工具应运而生,旨在帮助团队更高效、更准确地完成任务。今天,我们将为大家介绍30款顶级项目管理工具,这些工具不仅涵盖了从任务分配到资源管理的各个方面,还能通过智能化手段优化工作流程,提......
  • 盘点 GitHub 上可用的微信抢红包插件:原理、项目与安全建议
    快过年了,给大家盘点写好玩的,很多小伙伴应该需要的。我们首选github,GitHub作为全球最大的开源社区,自然也汇聚了不少微信抢红包相关的项目。本篇博客将盘点目前在GitHub上能够找到的部分微信抢红包插件或脚本,介绍其主要原理、使用门槛与风险,为有兴趣了解该领域的读者提供参考......
  • [1093] Git command examples
    HerearesomecommonGitcommandexamplesalongwithexplanations:BasicCommandsInitializeaRepository:gitinitInitializesanewGitrepositoryinthecurrentdirectory.CloneaRepository:gitclonehttps://github.com/user/repo.gitCreatesac......
  • [1092] Git Tutorial
    Ref:GitTutorial-W3SchoolUsingGitwithCommandLinegit--versiongitversion2.30.2.windows.1ConfigureGitgitconfig--globaluser.name"w3schools-test"gitconfig--globaluser.email"test@w3schools.com"CreatingGitFolderm......
  • Git使用
    配置查看当前系统的Git配置gitconfig--list设置当前主机的Git的账户名及邮箱地址gitconfig--globaluser.name"YourName"gitconfig--globaluser.email"email@example.com"项目在远程拉取代码gitclonehttps://github.com/liduchang/redis初始化Git项目git......
  • 如何利用可视化工具提高远程设计团队的工作效率
    一、远程设计团队面临的主要挑战远程办公虽然提供了灵活性,但也使得设计团队面临了若干挑战。以下是远程设计团队常见的几大问题:1.时区差异带来的挑战设计团队的成员通常分布在不同的时区,这种地理上的分散性直接影响到团队协作的效率。举例来说,当一个位于美国的设计师完成了设......
  • [SNCPC2019] Digit Mode
    前言不管从实现方式到智慧程度都是数位\(\rm{dp}\)好题,写一下思路首先你发现常规的数位\(\rm{dp}\)方法不可以实现原因是不能对于一个数求出其\(m(x)\)容易考虑到逆向思考,你钦定\(m(x)\)的值,看有多少个\(x\)满足此要求怎么做?先考虑最简单的情况,如果从\(......