我正在开发一个包含大量sass文件的项目,这些文件被编译成一个大的style.css
问题是这个style.css
在合并时总是会导致问题,但我们仍然希望将其最新版本推送到服务器。我最终做的是 - 在与master合并时删除我的本地style.css
文件,然后再次编译sass,然后将所有内容推送到远程。
我在合并时如何忽略特定文件,但在推送主分支时仍然将其推送到远程?
编辑: 基本上我总是希望我的这个文件版本覆盖master分支上的版本,而不会引起冲突,其他文件照常合并。
答案 0 :(得分:1)
据我所知,我们无法强行推送单个文件
现在你可以做的是 1)分别运行sass save style.css并签出当前版本(仅限style.css)并推送代码。
2)现在复制保存的style.css然后提交,使用git force命令强制将其推送到远程。
git push -f <remote> <branch>
(或)
使用git ignore style.css,一旦被忽略它就不会被跟踪但你最终会每次都将最新的style.css复制到服务器
答案 1 :(得分:1)
[(*) 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]
我认为有几种方法可以实现这一目标。
style.css
可能无法被git跟踪,因为它会再次生成。public/
目录。在这种情况下,您无需跟踪此style.css
。git cherry pick
合并和覆盖特定文件。style.css
存在于主人吗?如果没有,请为style.css
维护一个单独的分支,忽略master
中的CSS,style.css
的分支将在您的公共目录中包含.gitignore
,其中包含!style.css
1}}。因此,这个特定的分支只有2个文件,你自动合并内部的主文件。