如何正确初始化远程git存储库

时间:2018-12-30 10:55:42

标签: git

我在NAS上运行着本地git服务器,并且正在笔记本电脑和工作站上进行开发,所有这些都在我的本地网络中。因此,如果要在新的空仓库中启动项目,请遵循this answer

  1. 在NAS cd ${PROJECT}.git; git init --bare上创建裸仓库“ mynewproject.git”
  2. 也在NAS cd ${PROJECT}; git init上创建一个空的'repo'“ mynewproject”
  3. 在“ newproject” git add . ; git commit -m "initial commit" -a中进行首次提交
  4. 将裸仓库设为当前文件夹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

但是,这是正确的方法吗?

1 个答案:

答案 0 :(得分:1)

您的过程总体上不错,但是有点复杂。你不需要 NAS上的非裸仓库,因此您的工作流程应为

  1. 在NAS上创建裸仓库:import UIKit let str = "17:02:09" let mydateFormatter = DateFormatter() mydateFormatter.dateFormat = "hh:mm:ss" let timezone = TimeZone(abbreviation: "CEST") ?? TimeZone.current mydateFormatter.timeZone = timezone mydateFormatter.locale = Locale(identifier: "de_DE") as Locale? let date1 = mydateFormatter.date(from: str) print(date1?.description ?? "no date available")
  2. 在另一台计算机上克隆cd ${PROJECT}.git; git init --bare存储库。这会将遥控器添加到非裸仓库中。
  3. 您可以代替克隆来在另一台计算机上创建一个空的非裸仓库,并添加远程${PROJECT}.git
  4. 在另一台机器cd ${PROJECT}; git init; git remote add origin ssh://${USER}@${HOSTIP}${PROJECT}.git上的克隆的非裸仓库中进行初始提交。
  5. 将主服务器从另一台计算机推送到NAS上的裸存储库:git add . ; git commit -m "initial commit" -a