When you type this:
public Rigidbody rigid;
You're declaring a variable of type 'Rigidbody'. Every instance of the script will now have this variable.
You are not actually assigning a value to it; it is 'null' until you do so.
GetComponent is a method that every script inherits naturally (it comes from the MonoBehaviour class we inherit to declare a script). That method searches the GameObject the script is attached to, looks for a component of the given type (in this case, Rigidbody). If it can find a component of that type, it returns it. If it can't, it returns 'null' instead.
So that code is basically saying "on Start, look for a Rigidbody component and assign it to my variable `rigid`".
Like Prastiwar said, once you declare that variable, you can cut the entire Start method out and just drag and drop the Rigidbody component from the Inspector, which sets up the reference right off the bat – no extra coding necessary. This is a more standard and clean way of doing things.
But probably the tutorial you're reading is going to get to that part later, so maybe don't worry about it so much right now.