Intereting Posts
Конфигурация DAV SVN для сервера, обслуживающего несколько доменов Как вы выполняете частичную постановку с помощью svn? Две параллельные ветви в Git, как работать над «будущим», но фиксировать основные исправления для «хозяина», Как использовать конкретную версию подмодуля Git для каждой локальной ветви? Система управления документами / версиями как OEM? Возможно ли управлять исходным кодом с помощью VS Team Services без использования Visual Studio или другой среды IDE? автоматическое обновление временной шкалы трассы svn: E160043: ожидаемый формат FS между '1' и '4'; найденный формат «6» Как разработать несколько плагинов Trigger.io в команде? Подключение к VSS на netbeans использование черепахи svn в небольшом офисе Лучший контроль версий Android для приложений? Можете ли вы передать существующую рабочую копию в новую ветку с помощью TortoiseSVN? Дженкинс не отвечает, когда нажимает на ссылку «Релизы», петь Subversion Release Manager плагин Git – необходимо иметь несколько локальных ветвей, соответствующих удаленным филиалам?

Как получить git филиал коллеги, который был уволен

Короткий вопрос

Учитывая, что у меня есть доступ только для чтения к другому git-репо на том же сервере, как я могу скопировать конкретную ветку из этого репо в свою собственную?

Длинная история

Мой коллега и я писали код на одном и том же dev-сервере.

Я пользователь1, и мой git repo находится здесь:

 /home/user1/website 

Мой коллега – user2 и его git repo находится здесь:

 /home/user2/website 

Он работал над веткой с hotfix .

Плохие новости

Он был уволен, прежде чем он смог направить свою ветку hotfix на наш удаленный репо (размещен в другом месте). Поэтому из моего репо я не могу выполнить git checkout или git fetch его hotfix .

Кроме того, у меня есть только привилегии только для чтения в его каталоге. Если я cd к его репо на /home/user2/website , текущая ветвь, которая вычеркнута, является master . Если я попытаюсь git checkout hotfix из своего репо, я получаю это сообщение об ошибке:

 fatal: Unable to create '/home/user2/.git/index.lock': Permission denied 

Хорошие новости

У меня есть привилегии только для чтения. Хотя я не могу git checkout , я действительно могу git show , git log , git diff и т. Д.

Так что мой вопрос …

Учитывая, что у меня есть доступ только для чтения к репо моего коллеги, как я могу скопировать конкретную ветку из своего репо на мой?

Solutions Collecting From Web of "Как получить git филиал коллеги, который был уволен"

Есть много способов; вот два:

  • Клонировать его:

     cd $HOME mkdir his cd his git clone /home/user2/website 

    Теперь у вас есть полностью отдельный репозиторий, который является клоном этого репозитория.

  • Добавьте его как удаленный, затем выберите:

     git remote add his file:///home/user2/website git fetch his 

    Теперь у вашего репозитория есть remotes/his/ ветви, которые вы можете проверить, выбрать вишневый, создать локальные ветви на основе и т. Д.

Метод git remote add работает с сетевыми протоколами, поэтому, если у вас есть доступ к машине (например, через ssh ), вы можете использовать это, даже если вы на своем компьютере (ноутбук и т. Д.).

См. Описание документации git clone относительно предостережений при использовании общих локальных файлов (с --local , --no-hardlinks --shared или --shared ).