You do not need to know everything before starting, but you should be comfortable with the fundamentals of your chosen language, basic data structures, debugging, Git, and reading documentation.
Practice building small applications without copying a complete tutorial. Learn to break requirements into tasks, create branches, write meaningful commit messages, and explain why you chose a particular approach.
Expect feedback on code quality as well as whether the program works. Naming, structure, testing, security, performance, and maintainability all become more important as projects grow.
The internship should stretch your ability. Preparation gives you enough foundation to benefit from that stretch rather than being overwhelmed by basic tooling.