如何查看文件变更记录

平时用git主要都是提交新的commit,昨天发现有个文件被异常的修改了,需要查看是哪次commit造成的。这时候重新去看所有pr是不可能的,想必git命令行还是有解决方法。

首先查看文件修改的commit记录:

$ git log <filename>

查到变更的commit记录后,即可针对怀疑的commit查看究竟修改了文件的哪些内容:

$ git show <commit_id> <filename> 注意,此时不加文件名的话,会把所有文件修改内容都展示出来。

PS: 发现还有更好的方式:

$ git log -p <filename> 直接查看文件变更记录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在MySQL中,你可以通过查询information_schema数据库来查看近期表结构变更记录。具体步骤如下: 1. 连接到MySQL数据库 2. 选择information_schema数据库 ``` USE information_schema; ``` 3. 查询TABLES表和COLUMNS表 ``` SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_DEFAULT FROM COLUMNS WHERE TABLE_SCHEMA = 'your_database_name' ORDER BY TABLE_NAME, ORDINAL_POSITION; ``` 这个查询语句将会列出你的数据库中所有表的所有列信息,包括表名、列名、数据类型、是否可为空和默认值等。你可以根据需要修改查询条件,例如,只查询最近一周内的变更记录: ``` SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_DEFAULT, UPDATE_TIME FROM COLUMNS WHERE TABLE_SCHEMA = 'your_database_name' AND UPDATE_TIME > DATE_SUB(NOW(), INTERVAL 1 WEEK) ORDER BY UPDATE_TIME DESC; ``` 这个查询语句将会列出最近一周内所有发生变更的表和列信息,按照更新时间倒序排列。 ### 回答2: 要查看MySQL数据库中近期表结构的变更记录,可以通过两种方法实现。 方法一:使用MySQL的information_schema数据库 1. 登录MySQL数据库。 2. 执行以下命令,选择要查看的数据库: USE information_schema; 3. 执行以下命令,查询表结构变更记录: SELECT TABLE_SCHEMA AS '数据库名', TABLE_NAME AS '表名', COLUMN_NAME AS '列名', DATA_TYPE AS '数据类型', COLUMN_TYPE AS '列类型', COLUMN_DEFAULT AS '默认值', IS_NULLABLE AS '是否允许为空', COLUMN_COMMENT AS '注释', COLUMN_KEY AS '索引类型', EXTRA AS '额外属性', UPDATE_TIME AS '修改时间' FROM COLUMNS WHERE TABLE_SCHEMA = 'your_database_name' AND UPDATE_TIME >= '2021-01-01'; (将'your_database_name'替换为要查询的数据库名,'2021-01-01'替换为要查询的起始日期) 4. 根据需要,可以根据列名、表名、数据类型等进行进一步筛选和排序。 方法二:使用MySQL的binlog文件 1. 登录MySQL数据库。 2. 执行以下命令,查看binlog文件路径: SHOW VARIABLES LIKE 'log_bin'; 记下文件路径(例如:/var/lib/mysql/binlog/mysql-bin.000001)。 3. 执行以下命令,查看binlog文件中的表结构变更记录: mysqlbinlog /var/lib/mysql/binlog/mysql-bin.* | grep -E '(^#)|(ALTER TABLE)' (将路径替换为实际的binlog文件路径) 4. 根据需要,可以根据日期等进行进一步筛选和排序。 通过以上方法,你可以查看近期MySQL数据库中的表结构变更记录。 ### 回答3: 在MySQL中,可以以下列方式查看近期表结构变更记录: 1. 使用information_schema库中的表`TABLES`和`COLUMNS`进行查询。其中,`TABLES`表记录了所有数据库中的表信息,而`COLUMNS`表记录了所有表的列信息。可以使用下述SQL查询语句,按时间倒序列出表的结构变更记录: ``` SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'your_database_name' ORDER BY CREATE_TIME DESC; ``` 2. 使用MySQL的**general log**进行日志记录和分析。首先,需要查看MySQL配置文件my.cnf(或者my.ini),确认general log是否启用。如果没有启用,需要修改相关配置。启用后,MySQL会将所有的查询和操作记录到general log文件中。可以使用以下Shell命令查看最近的表结构变更记录: ``` grep 'ALTER TABLE' /var/log/mysql/general.log ``` 3. 使用MySQL的**binary log**进行日志记录和分析。binary log是MySQL的事务日志记录了所有对数据库的变更,包括表结构的修改。可以使用以下Shell命令查看最近的表结构变更记录: ``` mysqlbinlog /var/log/mysql/mysql-bin.[number] ``` 其中,`[number]`是二进制日志文件的编号,按时间顺序递增,可以使用最新的。使用该命令将二进制日志以文本形式输出,然后搜索其中的`ALTER TABLE`语句以查看表结构变更记录。 综上所述,以上是通过information_schema库、general log和binary log这三种方式,可以查看MySQL中近期的表结构变更记录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值