GAS has multiple aliases for various directives for compatibility with Unix assemblers on various platforms. This is the primary reason for redundant directives for the same thing.
Some of those aliases mean different things depending on the target platform; generally avoid those when there's a same-everywhere way, e.g. always use .balign or .p2align, never .align. Always use .ascii or .asciz, never .string.
That way you (and future readers of your code) can just look up what it means in the GAS manual, without having to check on which way it behaves for some specific target platform.
As documented in the GAS manual for .string (which you should read in future when you're wondering about other directives):
Unless otherwise specified for a particular machine, the assembler marks the end of each string with a 0 byte.
So on most targets, it's a synonym for .asciz. But apparently on some, it's a synonym for .ascii.
There are .string16, .string32, and .string64 directives in case you want strings of wide characters. In that case maybe worth putting up with the possible ambiguity of zero-termination, as long as you know what it does on the ISA you're actually targeting with this source file. I don't think there are equivalents for asciz.