Heat the olive oil in a skillet over medium heat. Add the garlic and sauté until fragrant, about 20-30 seconds. Toss in spinach and sauté until just wilted, about two minutes. Add the artichokes, salt, and pepper, then sauté until heated through, about two minutes. Drain off any liquid from the skillet and stir in sour cream.
Spread butter on one side of each of the bread pieces. Heat a griddle pan or cast-iron skillet over medium-high heat. Place pieces of bread on the griddle, buttered side down. Spread some shredded cheese, the spinach artichoke filling, and some more cheese. Top with the other piece of bread buttered side faced up. When the bottom is browned, flip the sandwich and cook until the bread is toasted and the cheese is melted.
Tip: Assemble your sandwiches before placing them in a skillet to minimize the amount of cheese falling out and burning. Of course, you won't have this problem if you use sliced cheese. However, if you like lots of gooey cheese, shredded is the way to go.