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



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



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

730   3  

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 поддерживает файловый протокол:

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

вот сценарий, который я написал, чтобы сделать именно это. Скрипт обрабатывает все мои обычные инициализации новых git repos

  1. создает .gitignore file
  2. инициализирует .ГИТ
  3. создает голый git РЕПО на сервере
  4. устанавливает локальный репозиторий Git, чтобы подтолкнуть к удаленному РЕПО

http://gist.github.com/410050

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

вот полный скрипт:

#!/bin/bash
# Create Git Repository
# created by Jim Kubicek, 2009
# [email protected]
# 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/

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

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

Comments

    Ничего не найдено.