没有git fetch的安全git push? (或git pull)

时间:2015-09-15 12:34:39

标签: git git-push

我终于开始理解git的基本原理,但我只想确保理解它的这一特定部分。

我一直在Visual Studio中使用git功能,所以我已经习惯了“同步”按钮。啊。现在我正在从命令行做所有事情,但是我只是想确定当我推动起源主人我正在做正确的事情。我是唯一一个在遥控器上工作的开发人员所以这是一个低风险的情况(相对而言)....但是我应该总是至少git fetch才能推送?似乎我应该确保我进入远程仓库,我的本地仓库更新到目前为止。对?如果我推送和远程/本地不同步会发生什么?我收到错误吗?

2 个答案:

答案 0 :(得分:1)

在推送之前,您不必每次都进行拉/取。如果你的推送与远程存储库中的推送冲突,git会给你一个错误,如:

bool SmoothEdge( Mat mInput_Bgr,Mat &mOutput_Bgr, double amount, double radius, byte Threshold) 
{
    if(mInput_Bgr.empty())
    {
        return 0;
    }

    if(radius<1)
        radius=1;

    Mat mInput,mOutput;
    Mat mChannel[3];

    split(mInput_Bgr,mChannel);

    for (int i = 0; i < 3; i++)
    {
        mInput= mChannel[i];
        SmoothEdgeSingleChannel(mInput,mOutput,amount, radius,Threshold); 
        mOutput.copyTo(mChannel[i]);
    }
    merge(mChannel,3,mOutput_Bgr);


    return true;
}

bool SmoothEdgeSingleChannel( Mat mInput,Mat &mOutput, double amount, double radius, byte Threshold) 
{
    if(mInput.empty())
    {
        return 0;
    }
    if(radius<1)
        radius=1;

    Mat mGSmooth,mDiff,mAbsDiff;
    mOutput = Mat(mInput.size(),mInput.type());

    GaussianBlur(mInput,mGSmooth,Size(0,0),radius); 

    subtract(mGSmooth,mInput,mDiff);
    mDiff*=amount;
    threshold(abs(2* mDiff),mAbsDiff,Threshold,255,THRESH_BINARY_INV);

    mDiff.setTo(Scalar(0),mAbsDiff);

    add(mInput,mDiff,mOutput);

    return true;
}

int main(int argc, char* argv[])
{
    string FileName_S="Path\\Image.jpg";
    double m_Amount=1.5;
    double m_Radius=5.5;
    int m_Threshold=0;

    Mat mSource_Bgr,mSmoothEdge;
    mSource_Bgr= imread(FileName_S,1);

    SmoothEdge(mSource_Bgr,mSmoothEdge,m_Amount,m_Radius,m_Threshold);

    imshow("Source Image",mSource_Bgr);
    imshow("Output Image",mSmoothEdge); 
}

答案 1 :(得分:0)

如果您有不兼容的更改,

git将拒绝push