In brief
Most people who fly the Confederate flag do not do so solely to advocate for racism or discrimination. It is a symbol of the South. When one goes back through the mists of time one will find that almost every country, former country, or cultural group is responsible for some reprehensible atrocity. That doesn't mean that they are all bad, or that they should not be proud of who they are, or have a flag, or celebrate their past.
Yankees were not perfect
William Tecumseh Sherman, in his scorched-earth campaign through Georgia, gave written orders to seize food, horses, and wagons, and to destroy homes and railroads. Sherman himself estimated that the campaign had caused about one hundred million dollars (about one and one half billion nowadays) in damages, four-fifths of which had been 'simple waste and destruction', not to the advantage of the Union forces. According to a 2018 paper seeking to measure the impact of the campaign, it caused 'a large contraction in agricultural investment, farming, asset prices, and manufacturing', and that 'elements of the decline persisted through 1920'. Most people nowadays will agree that this is rather dishonourable and unnecessary conduct when provision could have been made beforehand. However, when an American patriot flies his flag, these reprehensible acts are probably not what he is thinking of.
You would not hear this nonsense about any other flag
But does that mean that they should not honour their dead or fly their flag? No. From their perspective, they were fighting for the re-unification of their country and the liberation of slaves. When people fly the American flag, the vast majority are not doing so in order to celebrate the genocide of Native Americans, the civilian deaths caused by the United States, or the country's various other misdeeds. They are celebrating the honourable sections of their people's history, and their pride in it.
States' rights or slavery?
The common joke usually goes like this: A Southerner states: "The Civil War was not fought over slavery, it was fought over states' rights." The Yankee counters: "States' rights to what?" The Yankees in attendance then hoot and holler and cause a grand ruckus.
It is true that one of the main motivations for the Civil War was the desire of the Southern elite to maintain the institution of slavery. When it was feared that the federal government was going to abolish slavery after the election of Abraham Lincoln as President, the South seceded. Secessionists believed that the right of Southern states to maintain slavery was going to be violated. If the federal government sought to forbid California from mining gold, or Maine from fishing, or Pennsylvania from mining coal, they, too, would have been infuriated by this infringement on their rights. Slavery was not so universally opposed in those days. If Northern states could independently abolish slavery, overriding federal legalisation of slavery, then if the federal government were to abolish slavery surely Southern states could independently legalise it. I, for one, completely abhor slavery but believe that the precedent established by the universal abolition of slavery was not a good one. States should have much more autonomy in establishing their own laws.
Do you want another civil war? This is how you get another civil war.
Confederate statues are being destroyed illegally by protestors or in a hurry without popular consentby legislators. Confederate flags are being banned from military bases. The state flag of Mississippi was removed and now a ruckus is being made about the three stripes on Georgia's flag(which was already changed to be rid of Confederate symbolism.) The inevitable conclusion of all this is the exile of the Confederate flag from public society, which will ultimately include war cemeteries, and at some point perhaps even private property. This will further enrage the flag's supporters and do nothing at all to foster unity.