如何使GIT在本地忽略跟踪文件?

时间:2018-02-13 11:24:47

标签: git

我有我的团队工作的存储库,其中有一些文件被跟踪但可能在本地更改,如.exe文件,这是编译的影响,但只有在发布完成后才应检查。另一个是makefile.mk,其中我设置了一些本地选项,很少进行我需要提交的更改。通常这个文件与存储库版本不同,这是可以的。因此,这些文件被跟踪,无法放入.gitignore但让git pull origin因为覆盖对这些文件的更改而哭泣(错误:对以下文件的本地更改将被合并覆盖)。我尝试将*.exe~放入.git/info/exclude(以及.mk)并运行git update-index --no-assume-unchanged that.exe,以便git status不再显示它们,但即使使用{{1 }}。我读过某个地方使用-f我试过了。现在没有人知道如何更新我的回购。

  • 如何保留已跟踪的修改过的文件并让GIT在本地忽略其更改?
  • 如何在不克隆的情况下修复我的存储库(例如,我会错过一些配置文件)?

2 个答案:

答案 0 :(得分:0)

  

如何保留已跟踪的修改文件并使GIT在本地忽略其更改?

Git无法同时跟踪和忽略文件;它没有任何意义。

从Git(git rm --cached that.exe makefile.mk)中删除文件,将其名称添加到.gitignore并提交。

制作makefile.mk(假设为makefile.mk.example)的副本,为从一个开发环境更改为另一个开发环境的值提供合理的默认值,并将其添加到存储库中。

记录此更改,让任何开发人员知道如何在克隆回购时获得自己的makefile.mk

答案 1 :(得分:0)

对于您的第一个问题,您可以使用该命令。

public class Player {

    private static List<Player> players = new ArrayList<>();
    private String name;

    public Player(String name) {
        this.name = name;

        for (Player otherPlayer : players) { // Iterating static field
            if (otherPlayer.name.equalsIgnoreCase(name)) {
                otherPlayer.quit("Somebody with the same name joined the game");
            }
        }
    }

    public void quit(String message) {
        players.remove(this); // Modifying static field
        Server.disconnect(this, message);
    }
}

rm 是要删除的。

对于第二个问题,您可以找到答案here