Go puts programmer productivity on top, thus fast compilation, "zero-thinking" memory management (thus global GC). They want the best from both fast but hard C++ and elegant but slow Python.
Rust aims at low level, close to hardware, as fast as possible programs, thus fine tuning for memory management (arenas, isolated GCs, choice between GC and non-gc allocation), thus disallowance of implicit copying even at cost of making language a bit harder etc. They want to fix memory unsafety and bad concurrency problems of C and C++ while keeping all the perks which are the reasons why those languages are still used for new software.
I imagine the choice will be like between C++11 and Java today: one's a bit faster and less memory greedy, the other's a bit easier, and each will have niches where the other is strongly unwanted.