git revert删除提交

时间:2017-02-20 09:06:32

标签: git git-branch git-log git-revert

我有兴趣恢复推送提交,但也将其从图表中删除 例如。我有:

                   tag
A <— B <— C <— D <— E  <— F  
                          HEAD  

我想完全删除F所以我的图表如下:

                   tag
A <— B <— C <— D <— E  
                   HEAD  

我该怎么做?

1 个答案:

答案 0 :(得分:1)

尝试重写历史是错误的。

克隆/拉动它的人将很难整合您的更改,并可能最终推迟您希望删除的更改。

最好还原提交,这会在您的历史记录中添加“否定”提交。

import numpy as np
import scipy.stats
import math
from math import lgamma
from numpy import matrix
from numpy import linalg
from numpy.linalg import slogdet
import scipy.special
from scipy.special import gammaln

mu = np.array([3,3])
x = np.array([1, 1])
Sigma = np.array([[1, 0], [0, 1]])
p=2
df=1

def dmvt(x, mu, Sigma, df, log):
    '''
    Multivariate t-student density. Returns the density
    of the function at points specified by x.

    input:
        x = parameter (n x d numpy array)
        mu = mean (d dimensional numpy array)
        Sigma = scale matrix (d x d numpy array)
        df = degrees of freedom
        log = log scale or not

    '''
    p = Sigma.shape[0] # Dimensionality
    dec = np.linalg.cholesky(Sigma)
    R_x_m = np.linalg.solve(dec,np.matrix.transpose(x)-mu)
    rss = np.power(R_x_m,2).sum(axis=0)
    logretval = lgamma(1.0*(p + df)/2) - (lgamma(1.0*df/2) + np.sum(np.log(dec.diagonal())) \
       + p/2 * np.log(math.pi * df)) - 0.5 * (df + p) * math.log1p((rss/df) )
    if log == False:    
        return(np.exp(logretval))
    else:
         return(logretval)


print(dmvt(x,mu,Sigma,df,True))
print(dmvt(x,mu,Sigma,df,False))

只是推动它

git revert F

如果你知道自己在做什么或者不关心打破一切,你可以重写历史:

git push origin master

将索引移回父提交(E)

git reset --hard HEAD^

将新分支引用推送到远程存储库,无论它是否快进。