从repo的主分支中删除文件

时间:2018-01-30 16:41:15

标签: git

初级开发人员将代码直接编写到我们的存储库的主分支中,这会影响我们的生产作业。

我的主管刚刚完成了我的代码审查并合并了我的公关。他做了git checkout master后跟git pull,当我们注意到新文件时。

Git log表明它是由此开发人员直接提交到主分支。

我可以在不损坏任何内容的情况下git rm --cached filename吗?

2 个答案:

答案 0 :(得分:3)

永远不应该直接在主分支上进行更改,也不应该强制推送到主分支。有关最佳实践的一些见解,请阅读https://8thlight.com/blog/kevin-liddle/2012/09/27/mind-your-git-manners.html

始终将其分支并在那里进行更改,然后将此分支合并为master。

特别针对您的示例:

  • off master的分支
  • 删除文件并提交更改
  • 通过PR
  • 将分支合并到主人
  • 全部完成。

这是最干净的方法,对代码协作尤为重要。

答案 1 :(得分:1)

你可以改变并删除错误的提交:

d 54f3714 Junior's commit
pick 044de34 Your commit

# Rebase 8de638d..044de34 onto 8de638d (2 commands)
...

这将打开一个新窗口,询问您该怎么做。放弃大三的提交,然后选择你的提交:

git push origin master -f

接下来,推送更改:

final class Singleton {
    private static int ROUND_ROBIN_COUNTER = Integer.MAX_VALUE;
    private static final List<Singleton> INSTANCES = Arrays.asList(new Singleton(), new Singleton(), new Singleton());

    private Singleton() {}

    public static Singleton getInstance() {
        return INSTANCES.get(Math.abs((ROUND_ROBIN_COUNTER++)%INSTANCES.size()));
    }
}