все просто, почитайте про git flow
если сильно упрощая, команда предпологает командную работу, тоесть вы взаимодействуете между собой, вы не должны дублировать работу друг друга
1. в мастере всегда рабочий код который можно собрать и выпустить в релиз
2. работа ведется в dev, но и в dev код всегда рабочий, тоесть не падает
3. у вас у всех в команде есть задачи, не должно быть так что пили от сюда и до обеда, почти все менеджеры задач присваивают задаче какой то индификатор, выработайте соглашение о том как называть ветку и комит
3.1 взяли свою задачу, сделлали ветку от dev и назвали как то адеватно, например task_id/short_task_description ( тут у каждого свое представление о прекрасном, но имя ветки должно позволять быстро найти задачу и вретце давать предстовление о том что делает эта ветка)
3.2 после того как сделали свою задачу, проверили что ваш код ничего не ломает, при необходимости смержились (пока вы работали кто то уже мог что то добавить в dev, заботится о том чтобы пул реквест ничего не сломал задача автора пул реквеста)
3.3 делаете пул реквест и вешаете его на члена вашей команды чтобы он сделал ревью и смержил ваш код с веткой dev (вы тже должны делать ревью чужих пул ревестов, так вся команда пимрено будет представлять что творится в коде и по возмжности минимизирует количество костылей в коде)
как бы все, если вкратце то работу с git можно свести к такой последовательнсти действий
1) Если я скопирую репозиторий себе, сделаю правки (а в это время другой программист тоже поправит код и сделает комит), то что будет?
ничего, пока он не сделает пушь все остается у него локально
2) Перед комитом приходится писать git add *. Может есть ключ для comit чтобы не прописывать команду каждый раз.
вкусовщина, я вообще оченьмало взаимодействую с консолью, не потмоу что это сложно, мне просто удонее и быстрее использовать горячие клавиши продкутов jetbrains
3) Если я начну работать в студии в парке репозитория, то та создаст много файлов. Как из не записывать в репозиторий?
настройте .gitignore файл