2010-05-22 10 views
53

मेरे पास अपने लैपटॉप पर एक स्थानीय गिट भंडार सेटअप है। मैं इसे अपने डेस्कटॉप पर धक्का देना चाहता हूं।स्थानीय गिट भंडार को किसी अन्य कंप्यूटर पर कैसे धक्का देना है?

मैं यह कैसे कर सकता हूं?

+4

गिट superusers.com में होना चाहिए – vodkhang

+1

क्या आपने मैन पेज पढ़ा है? टाइप किया गया 'गिट हेल्प पुश'? – crazyscot

+10

@ वोदखांग: नहीं, यह सुपरसियर पर नहीं होना चाहिए। यह डेवलपर टूलबॉक्स और उसके प्रोग्रामिंग वातावरण का एक महत्वपूर्ण हिस्सा है। – VonC

उत्तर

49

आप एक साझा डायरेक्ट्री तक पहुंच है, तो आप (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 

यह एक bare repo, "डेस्कटॉप" के रूप में अपने स्थानीय रेपो में संदर्भित पैदा करेगा।

सबसे बुनियादी है:
चूंकि यह नंगे है, तो आप (यदि आवश्यक हो और साथ ही इसे से पुल) यह करने के लिए धक्का कर सकते हैं

git push desktop 

ProGit book mentions के रूप में, Git फ़ाइल प्रोटोकॉल का समर्थन करता है स्थानीय प्रोटोकॉल, जिसमें दूरस्थ भंडार डिस्क पर किसी अन्य निर्देशिका में है।
यह अक्सर प्रयोग किया जाता है यदि आपकी टीम के हर किसी के पास एक साझा फाइल सिस्टम जैसे एनएफएस माउंट तक पहुंच है, या कम संभावना है कि हर कोई एक ही कंप्यूटर में लॉग इन करता है।

+0

'गिट पुश डेस्कटॉप' का अर्थ है 'लैपटॉप' से 'डेस्कटॉप' पर पुश करें। इसके लिए एक 'बेयर' रेपो निश्चित रूप से जरूरी नहीं है। – Timo

+0

@ टिमो हां, 2015 से, एक गैर-बेयर रेपो संभव है: https: // stackoverflow।कॉम/ए/30030236/630 9 – VonC

5

यहां एक ऐसी स्क्रिप्ट है जिसे मैंने केवल यह करने के लिए लिखा था। स्क्रिप्ट नई Git रेपोस

  1. के सभी मेरे सामान्य प्रारंभ संभालती .gitignore फ़ाइल बनाता है
  2. initializes .git
  3. स्थानीय Git रेपो के लिए पुश करने के लिए सर्वर पर नंगे Git रेपो बनाता
  4. सेट जो दूरस्थ रेपो

http://gist.github.com/410050

आप निश्चित रूप से करने के लिए इसे संशोधित करना होगा आप जो भी सेटअप प्राप्त कर चुके हैं, विशेष रूप से यदि आप विंडोज लैपटॉप/डेस्कटॉप से ​​निपट रहे हैं।

#!/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 [email protected]$REPADDRESS:$REPLOCATION/ 
rm -rf $TEMPREP 

# Set up the origin for the project 
echo "Linking current repository to remote repository" 
git remote add origin [email protected]$REPADDRESS:$REPLOCATION/$REPNAME.git/ 
+2

मैं आपकी लिपि को आपके उत्तर में पूरी तरह से कॉपी करने की अनुशंसा करता हूं (क्योंकि यह बहुत बड़ा नहीं है)। एक बार स्टैक ओवरफ्लो अगले सीसी-विकी डंप (http://blog.stackoverflow.com/2009/06/stack-overflow-creative-commons-data-dump/) जारी करता है, तो आप सुनिश्चित हैं कि यह स्क्रिप्ट * हमेशा * उपलब्ध होगी । अन्यथा, +1 – VonC

2

सबसे आसान नहीं है (सबसे अच्छा) जिस तरह से लैन के माध्यम से भंडार निर्देशिका का हिस्सा है, और Git के file:// प्रोटोकॉल (man git देखें) का उपयोग करने के लिए है:

यहाँ पूर्ण स्क्रिप्ट है।

मेरे लिए, सबसे अच्छा तरीका gitolite का उपयोग करना है (विस्तृत निर्देशों के लिए gitolite docs देखें)।

संबंधित मुद्दे