gpt4 book ai didi

Git - 在 merge 时忽略文件但仍将其推送到远程

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

我正在开发一个包含大量 sass 文件的项目,这些文件被编译成一个大的 style.css

问题是这个style.css在 merge 的时候总是出问题,但是我们还是希望把它的最新版本推送到服务器上。我最终做的是 - 在与 master merge 时删除我的本地 style.css 文件,然后再次编译 sass,然后才将所有内容推送到远程。

如何在 merge 时忽略特定文件,但在推送 master 分支时仍将其推送到远程?

编辑:基本上我总是希望我的这个文件的版本覆盖 master 分支上的那个而不会引起冲突,并且其余文件像往常一样 merge 。

最佳答案

编辑:您可能想要这样做:

[(*) code and commit]
[don't commit your style.css!]
$ git checkout -- public/style.css # erase your own style.css
$ git pull
[merge if necessary]
[re-generate your style.css] # important!
git commit public/style.css -m "your message here"
git push origin # should be OK.
[go to (*) and go on coding]

原帖

我认为有几种方法可以实现这一目标。

  1. style.css 可能不会被 git 跟踪,因为它会再次生成。
  2. 如果您曾经使用过静态站点生成器,则应该使用 rsync 而不是 git 推送您的 public/ 目录。在这种情况下,您将不必跟踪此 style.css
  3. 单独提交 style.css 并在 merge 之前,使用 git cherry pick merge 和覆盖特定文件。
  4. master 中是否需要style.css?如果不是,请为您的 style.css 维护一个单独的分支,忽略 master 中的 CSS,style.css 的分支将包含一个包含 !style.css 的公共(public)目录中的特定 .gitignore。因此,该特定分支将只有 2 个文件,您会自动在其中 merge master。

关于Git - 在 merge 时忽略文件但仍将其推送到远程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26507788/

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