1.9 git reset HEAD 管理暂存区中的文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.9 git reset HEAD 管理暂存区中的文件相关的知识,希望对你有一定的参考价值。

参考技术A 主要使用的命令:git reset HEAD、git checkout

步骤解释:创建一个i.php文件,查看工作区状态,这时可以看见i.php文件还没add加入缓存区

解释:这时 , i.php文件还未commit提交 , 只是add加入到了缓存区可以提交变更

解释: 修改了i.php后,查看工作区状态显示i.php这个文件有两个变更 ,

         1.暂存区i.php可以commot提交, 

         2.对i.php文件的修改还未add加入到暂存区

下面来试试 , "git reset HEAD <file>..." 撤出暂存区

解释:可以看到,执行完git reset HEAD i.php命令后 , i.php 撤出暂存区了 , 但是i.php文件修改的内容没有影响 , 只是撤出暂存区

解释:重新把i.php加入暂存区并commit提交了之后再次修改一下文件内容,查看工作区状态,i.php的修改还未加入到暂存区

来使用"git checkout -- <file>..." 丢弃工作区的改动

解释:可以看到,对i.php文件的修改还未加入缓存区并提交的i.php,重新git checkout后已经回退到版本库的版本了,修改的内容不在了

数据仓库:谁发起从多个源提取数据到暂存区,是源还是数据仓库?

【中文标题】数据仓库:谁发起从多个源提取数据到暂存区,是源还是数据仓库?【英文标题】:Data Warehouse: Who initiate extract data from multiple source to staging area, is it the source or the data warehouse? 【发布时间】:2021-04-27 04:10:50 【问题描述】:

我有一个关于数据仓库中的 ETL(尤其是提取的)的问题。

从这个article来看,暂存区主要是时间原因,有些甚至不需要暂存区。

假设我有 3 台微服务服务器,每台都有自己的数据库、2 台操作服务器和 1 台数据仓库服务器。

    服务器 1:计划每天提取数据 服务器 2:数据需要在数据仓库中实时可用

谁将启动提取数据?我的想法是

    服务器 1:数据提取由数据仓库服务器发起,直接从服务器 1 的数据库中提取,每天调度 Server 2:定时无法调度,所以数据仓库服务器提供API供Server 2使用,Server 2在每次有数据时通过提供的API发起数据提取或者向数据仓库服务器发送数据。

但我不确定,我是否应该向所有运营服务器提供 API 并让他们决定何时将数据发送到仓库?还是直接从操作数据库中提取数据是数据仓库服务器的全部工作?如果是,如何提取实时的?

【问题讨论】:

【参考方案1】:

您提出的方法(您每天 ping 服务器 1,但近乎实时地从服务器 2 接收数据)是我过去看到的。不过,您可能需要考虑以下几点:

有时无法将服务器 2 配置为自动 ping API,因为其数据库不支持触发器。如果是这种情况,那么您可能需要定期从 DW ping 服务器 2,例如每五分钟一次。 通常,您会每晚查询服务器 1。也就是说,我可以看到服务器 1 只告诉您何时可以读取它实际上可能会更好。在第二种情况下,您的 DW 不必担心与服务器 1 的时间表同步;如果服务器 1 有处理延迟或其批处理窗口运行时间过长,您的 DW 仍会在数据准备就绪时获取其数据。

【讨论】:

以上是关于1.9 git reset HEAD 管理暂存区中的文件的主要内容,如果未能解决你的问题,请参考以下文章

Git reset命令的使用

git学习02之reset命令

git篇之reset

git reset HEAD 与 git reset --hard HEAD的区别

git reset

git reset 版本回退的三种用法总结