初级开发人员将代码直接编写到我们的存储库的主分支中,这会影响我们的生产作业。
我的主管刚刚完成了我的代码审查并合并了我的公关。他做了git checkout master
后跟git pull
,当我们注意到新文件时。
Git log
表明它是由此开发人员直接提交到主分支。
我可以在不损坏任何内容的情况下git rm --cached filename
吗?
答案 0 :(得分:3)
永远不应该直接在主分支上进行更改,也不应该强制推送到主分支。有关最佳实践的一些见解,请阅读https://8thlight.com/blog/kevin-liddle/2012/09/27/mind-your-git-manners.html
始终将其分支并在那里进行更改,然后将此分支合并为master。
特别针对您的示例:
这是最干净的方法,对代码协作尤为重要。
答案 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()));
}
}