GIT:如何在切换分支时保留被忽略的文件?

时间:2013-03-21 16:25:46

标签: git git-branch gitignore

我有一个App.Local.config文件,每个开发人员都有自己的设置。我不希望这个文件在GIT仓库中检查版本,每次被其他开发人员的更改覆盖。

所以我从repo中删除了文件并将其添加到ignore文件中。但是现在当开发人员切换分支时,App.Local.config将从其本地文件系统中删除。

最终我想要的是:

  1. new dev clones repo,获取App.Local.config
  2. 的起始版本
  3. dev对App.Local.config进行更改。 Git将忽略更改而不是stage / checkin
  4. dev切换分支,对App.Local.config的更改不会丢失,文件也不会被删除。
  5. 我该怎么做?

    感谢。

3 个答案:

答案 0 :(得分:7)

可能发生的是您从工作区中删除了文件,但未从索引中删除。如果你这样做,git认为删除这个文件是一个改变,它将从那时起删除它。

要走的路是删除您不想再从索引中跟踪的文件

git rm --cached App.Local.config

然后将该文件添加到.gitignore 这样做你将不再有文件

的问题

答案 1 :(得分:1)

好像这个文件在索引中一次。因此删除 是一种变化。您可以将其添加到.gitignore.git/info/exclude,然后在每台开发者计算机上重新创建它。

答案 2 :(得分:1)

您不仅应该在工作分支中使用git rm --cached App.Local.config,还应该在要切换到的分支中使用App.Local.config,否则当您切换回您工作的分支时,您将丢失git rm --cached App.Local.config在该分支中使用class Post(models.Model): user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET('deleted_user')) post_id = models.BigAutoField(primary_key = True) content = models.CharField(max_length = 2000) timestamp = models.DateTimeField(auto_now_add=True) original_poster = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET('deleted_user'), related_name='author') class Following(models.Model): user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='follows') followed_user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='followed')