首页 > 解决方案 > 修改 gitlab 提交

问题描述

我想修改我很久以前推送的 git commit。有没有简单直接的方法来做到这一点?

从那以后我做了很多改变,对我来说使用git rebase.

我仍然可以使用git rebase,但我对 git 的使用非常陌生。

提交涉及我的存储库的第一个文件,并且我不允许创建新的提交来更改我在第一次提交时推送的文件。

标签: git

解决方案


我想要做的是,改变一个特定的文件内容,

代替交互式变基,使用git filter-repo代替BFG 或 filter-branch

使用内容过滤

最后,您可以(如果您是唯一在该存储库上工作的人)执行git push --force

如果要修改文件内容,可以根据文件中的表达式列表进行修改,每行一个。
例如,一个名为的文件expressions.txt包含:

p455w0rd
foo==>bar
glob:*666*==>
regex:\bdriver\b==>pilot
literal:MM/DD/YYYY=>YYYY-MM-DD
regex:([0-9]{2})/([0-9]{2})/([0-9]{4})==>\3-\1-\2

然后运行

git filter-repo --replace-text expressions.txt

将通过并替换

  • p455w0rd***REMOVED***,
  • foobar,
  • 任何包含666空行的行,
  • 单词driverwith pilot(但如果它之前或之后有字母,则不是;例如,驱动程序将不被修改),
  • MM/DD/YYYYYYYY-MM-DD和的确切文本
  • 表单的日期字符串与表单MM/DD/YYYY的日期字符串YYYY-MM-DD

推荐阅读