如何将本地Git存储库推送到另一台计算机?
我的笔记本电脑上有一个本地Git存储库安装程序。 我想推到我的桌面。
我怎样才能做到这一点?
如果你有权访问共享目录,你可以(见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挂载),或者每个人都登录到同一台计算机的可能性较小,则通常会使用此功能。
这是我写的一个脚本来完成这件事。 脚本处理所有我通常的新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/
最简单的(不是最好的)方法是通过LAN共享版本库目录,并使用git的file://
协议(请参阅man git
)。
对我而言,最好的方法是使用gitolite
(详细说明参见gitolite文档)。
上一篇: How to push a local Git repository to another computer?