防止Git删除被忽略的文件

5
我有一个主分支用于本地开发和一个heroku分支用于部署到heroku。我有一个被忽略并且不在主分支中检查的conf文件,因为它是私有的,但是在heroku分支中它没有被忽略,并且已经添加到仓库中,因为heroku服务器需要它来工作。
问题:我注意到当我从主分支切换到heroku时,它会从主分支中删除我的conf文件。heroku的conf文件可能会自动覆盖主分支上相同的文件,由于该文件被忽略,git没有警告我有未提交的更改,但实际上我有... 糟糕...
如何防止这种情况发生?是否有一种方法可以获得警告,或者我应该调整管理方式。
2个回答

2

1

如果你愿意稍微改变一下你的工作流程,那么你应该在本地检查配置文件。我有类似的需求,我做了类似的事情:

Workflow:
Master -> Work -> Heroku

在这种情况下,您将把配置文件与任何其他私有文件一起检入Work。要提交,您需要移动到主分支并使用cherry-pick命令,在工作中使用所有不是私有的提交。我使用所有不以NOCOMMIT:开头的提交,并将其构建成一个名为pull-work.sh的脚本。
通过这种方式,您不会破坏DVCS模型,因为配置文件可以与远程存储库分开进行版本控制。
以下是pull-work.sh的内容。这是由另一个SO用户在我的类似问题上开发的,尽管有所不同。
#!/bin/sh

BRANCH=`git branch | grep ^\\* | cut -d' ' -f2`
if [ $BRANCH != "master" ]; then
  echo "$0: Current branch is not master"
  exit 1
fi

git log --pretty=oneline work...master | grep -v -E '(NOCOMMIT|DEBUG):' | cut -d' ' -f1 | tac | xargs -l git cherry-pick

+1 但是最好附上你提到的问题的链接。 - Tobias Kienzler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接