簡體   English   中英

如何正確初始化遠程 git 存儲庫

[英]How to properly initialize a remote git repository

我有一個本地 git 服務器在我的 NAS 上運行,我正在我的筆記本電腦和工作站上進行開發,所有這些都在我的本地網絡中。 所以,如果我想在一個新的空倉庫中開始一個項目,我會關注這個答案並且

  1. 在 NAS cd ${PROJECT}.git; git init --bare上創建一個裸倉庫“mynewproject.git” cd ${PROJECT}.git; git init --bare cd ${PROJECT}.git; git init --bare
  2. 創建一個空的“repo”“mynewproject”,也在 NAS cd ${PROJECT}; git init cd ${PROJECT}; git init
  3. 在“newproject” git add . ; git commit -m "initial commit" -a進行初始提交git add . ; git commit -m "initial commit" -a git add . ; git commit -m "initial commit" -a
  4. 使裸git remote add origin ssh://${USER}@${REMOTEIP}${PROJECT}.git成為當前文件夾的遠程源git remote add origin ssh://${USER}@${REMOTEIP}${PROJECT}.git
  5. 推送到主git push origin master
  6. 刪除“項目”目錄rm -rf $PROJECT

然后我可以從其他機器克隆${PROJECT}.git庫。 這整個過程似乎過於復雜。 我的意思是,我編寫了它,

HOSTIP=XXX.XXX.XXX.XXX
USER=YYYYY
PROJECT=$1

[[ -z "${PROJECT}" ]] && exit 1

PROJECTNAME=${PROJECT}
PROJECT=$(pwd)/${PROJECT}

# create project and .git folders
mkdir ${PROJECT}
mkdir ${PROJECT}.git

# initialize folders for git
cd ${PROJECT}.git
git init --bare
cd ${PROJECT}
git init

# create initial project directory
echo "#!/bin/bash" > ${PROJECT}/ENV_${PROJECTNAME}.sh
git add .
git commit -m "initial commit" -a

# 'link' to 'remote' .git folder 
git remote add origin ssh://${USER}@${HOSTIP}${PROJECT}.git

# push to master
git push origin master

# delete 'project' directory
rm -rf $PROJECT

echo "CREATED PROJECT $PROJECT.git"
echo "Clone with git clone ssh://${USER}@${HOSTIP}${PROJECT}"

exit 0

但是,這是解決這個問題的正確方法嗎?

你的過程大多是好的,但有點過於復雜。 您不需要 NAS 上的非裸存儲庫,因此您的工作流程應該是

  1. 在 NAS 上創建一個裸倉庫: cd ${PROJECT}.git; git init --bare cd ${PROJECT}.git; git init --bare
  2. 在另一台機器上克隆${PROJECT}.git庫。 這會將遙控器添加到非裸存儲庫中。
  3. 您可以在另一台機器上創建一個空的非裸倉庫,而不是克隆,並添加 remote: cd ${PROJECT}; git init; git remote add origin ssh://${USER}@${HOSTIP}${PROJECT}.git cd ${PROJECT}; git init; git remote add origin ssh://${USER}@${HOSTIP}${PROJECT}.git cd ${PROJECT}; git init; git remote add origin ssh://${USER}@${HOSTIP}${PROJECT}.git
  4. 在另一台機器上克隆的非裸存儲庫中進行初始提交: git add . ; git commit -m "initial commit" -a git add . ; git commit -m "initial commit" -a git add . ; git commit -m "initial commit" -a
  5. 將 master 從另一台機器推送到 NAS 上的裸倉庫: git push origin master

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM