gpt4 book ai didi

git - 如何从 merge 请求中删除跟踪的文件

转载 作者:行者123 更新时间:2023-12-05 01:05:51 29 4
gpt4 key购买 nike

我已经提交了一些文件并将其推送到远程功能分支并创建了一个 merge 请求。我用过

git commit -a -m "blah blah"
git push

所以它推送了所有修改过的文件。不应该推送其中一个文件(这是主文件中的现有文件)(例如可执行文件)。如何从 merge 请求中删除此文件,以便当 MR merge 到 master 时,不需要的文件不会被 merge (好像它从未在 MR 中存在)。我找到了 page提到以下命令

git rm {filename} --cached
git commit -m "[...]"
git push

我尝试了这些命令,但在 Gitlab 的 merge 请求中没有看到文件被删除。这是正确的做法吗?

更新1:

使用上面的命令,我可以看到在上面的提交中提到的文件 deleted。但是当我将更新的 MR merge 到 master 时,该文件也会从 master 中删除。

更新2:

删除引起混淆的句子并更新标题

最佳答案

你使用的是什么版本的 Gitlab?

刚刚使用最新版本 (14.5.2) 进行了测试:

git checkout -b feature-123
git add package.json package-lock.json
git commit -m 'Commit with extra file.'
git push --set-upstream origin feature-123

创建 MR,显示两个文件已更改

现在,从同一个分支:

git rm --cached package-lock.json
git commit -m 'Removing extra file.'
git push

MR 现在只显示一个修改过的文件。

但如果这个 MR 在没有 squash 的情况下被接受,git 历史记录将包含添加和删除额外文件。

如果您提交了一个非常大的文件,最好让维护者在 merge 之前压缩您的更改。或者删除 MR 并通过一次提交创建一个新的。

关于git - 如何从 merge 请求中删除跟踪的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70277679/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com