В настоящее время я работаю в команде Scrum, которая использует общий репозиторий git с другой командой Scrum. Для простоты мы позвоним моей команде Scrum Автобот , а другой Десептикон .
Команда Десептикон имеет полный доступ к хранилищу с возможностью push и pull и отвечает за структуру.
Команда Автобот умеет тянуть, но не толкать. Как правило, нет проблем, если члены команды работают независимо. Однако возникают случаи, когда было бы полезно вытащить и подтолкнуть к другой ветке членов команды. На данный момент Автобот не был предоставлен push-доступ Десептикон (легкое исправление), поэтому требуется обходной путь.
Пример варианта использования: рассмотрим, сделал ли Optimus (для продолжения метафоры трансформаторов) следующее:
#!/bin/bash
optimus@workstation0:~/git/work_project/> git branch sdev /sprint/dev --track
optimus@workstation0:~/git/work_project/> git checkout sdev
optimus@workstation0:~/git/work_project/> touch important_file.py
optimus@workstation0:~/git/work_project/> git add important_file.py
optimus@workstation0:~/git/work_project/> git commit -m "Important file added."
Теперь Родимус должен помочь Оптимус , отредактировав Important_file.py. Он создает свою собственную ветку и тянет прямо из ветви Оптимуса и пытается нажать:
#!/bin/bash
rodimus@workstation1:~/git/work_project/> git branch sdev /sprint/dev --track
rodimus@workstation1:~/git/work_project/> git pull ~optimus/git/work_project sdev
rodimus@workstation1:~/git/work_project/> echo "'''TODO: Add content''' > important_file.py
rodimus@workstation1:~/git/work_project/> git commit -m "Added TODO".
rodimus@workstation1:~/git/work_project/> git push ~optimus/git/work_project sdev
И возникают ошибки. Какова правильная процедура для этого? Нежелательно иметь второй репозиторий, но выполнимо при необходимости.