Как продвинуть локальный репозиторий Мерзавца к другому компьютеру?

У меня есть локальная установка репозитория Мерзавца на моем ноутбуке. Я хотел бы продвинуть его на свой рабочий стол.

Как я могу сделать это?

58
задан nubela 1 August 2014 в 04:57
поделиться

3 ответа

Если у вас есть доступ к общему каталогу, вы можете (см. git clone и git remote ):

git clone --bare /path/to/your/laptop/repo /shared/path/to/desktop/repo.git
git remote add desktop  /shared/path/to/desktop/repo.git

Это создаст голое репо , которое в вашем локальном репо обозначено как «рабочий стол».
Поскольку он голый, вы можете нажать на него (а также вытащить из него, если необходимо).

git push desktop

Как упоминается в книге ProGit , git поддерживает файловый протокол:

Самым основным из них является Локальный протокол, при котором удаленный репозиторий находится в другом каталоге на диске.
Это часто используется, если у всех в вашей команде есть доступ к общей файловой системе, такой как монтирование NFS, или в менее вероятном случае, когда все входят в систему на одном компьютере.

53
ответ дан 24 November 2019 в 19:08
поделиться

Самый простой (не лучший) способ - предоставить общий доступ к каталогу репозитория через локальную сеть и использовать протокол git file: // (см. man git ).

Для меня лучше всего использовать гитолит (подробные инструкции см. В gitolite docs ).

2
ответ дан 24 November 2019 в 19:08
поделиться

Вот скрипт, который я написал для этого. Скрипт выполняет всю мою обычную инициализацию новых git-репо

  1. создает файл .gitignore
  2. инициализирует .git
  3. создает голое git-репо на сервере
  4. настраивает локальное git-репо для отправки в это удаленное репо

http://gist.github.com/410050

Вам определенно придется изменить его в соответствии с тем, что у вас есть, особенно если вы имеете дело с ноутбуком/десктопом Windows.

Вот полный текст скрипта:

#!/bin/bash
# Create Git Repository
# created by Jim Kubicek, 2009
# jimkubicek@gmail.com
# http://jimkubicek.com

# DESCRIPTION
# Create remote git repository from existing project
# this script needs to be run from within the project directory

# This script has been created on OS X, so YMMV

#######
# Parameters
REPLOGIN=#Login name
REPADDRESS=#Repo address
REPLOCATION=/Users/Shared/Development #Repo location

# The repo name defaults to the name of the current directory.
# This regex will accept foldernames with letters and a period.
# You'll have to edit it if you've got anything else in your folder names.
REPNAME=`pwd | egrep -o "/[a-zA-Z]+$" | egrep -o "[a-zA-Z\.]+"`


# If you have standard files/directories to be ignored
# add them here
echo "Creating .gitignore"
echo 'build/' >> .gitignore # The build directory should be ignored for Xcode projs
echo '.DS_Store' >> .gitignore # A good idea on OS X

# Create the git repo
echo "Initializing the repo"
git init
git add .
git commit -m "Initial commit"

# Copy the repo to the server
echo "Copying the git repo to the server $REPADDRESS"
TEMPREP="$REPNAME.git"
git clone --bare .git $TEMPREP
scp -r $TEMPREP $REPLOGIN@$REPADDRESS:$REPLOCATION/
rm -rf $TEMPREP

# Set up the origin for the project
echo "Linking current repository to remote repository"
git remote add origin $REPLOGIN@$REPADDRESS:$REPLOCATION/$REPNAME.git/
5
ответ дан 24 November 2019 в 19:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: