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

如何正确初始化远程git存储库,git,Git,我有一个本地git服务器在我的NAS上运行,我在我的笔记本电脑和工作站上开发,所有这些都在我的本地网络中。所以,如果我想在一个新的空回购协议中启动一个项目,我会遵循 在NAScd${PROJECT}.git上创建一个裸repo“mynewproject.git”;git init--裸的 在NAScd${PROJECT}上创建一个空的“repo”mynewproject;git init 在“newproject”git add中进行初始提交;git提交-m“初始提交”-a 使裸repo成为当前

我有一个本地git服务器在我的NAS上运行,我在我的笔记本电脑和工作站上开发,所有这些都在我的本地网络中。所以,如果我想在一个新的空回购协议中启动一个项目,我会遵循

  • 在NAS
    cd${PROJECT}.git上创建一个裸repo“mynewproject.git”;git init--裸的
  • 在NAS
    cd${PROJECT}上创建一个空的“repo”mynewproject;git init
  • 在“newproject”
    git add中进行初始提交;git提交-m“初始提交”-a
  • 使裸repo成为当前文件夹的远程源
    git remote add origin ssh://${USER}@${REMOTEIP}${PROJECT}.git
  • 推送到主机
    git推送到原始主机
  • 删除“项目”目录
    rm-rf$project
  • 然后我可以从其他机器上克隆
    ${PROJECT}.git
    repo。整个过程似乎过于复杂。我是说,是我写的

    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上的非裸存储库,因此您的工作流应该

  • 在NAS上创建一个裸repo:
    cd${PROJECT}.git;git init--裸的
  • 在另一台机器上克隆
    ${PROJECT}.git
    repo。这会将远程回购添加到非裸回购中
  • 您可以在另一台计算机上创建一个空的非裸repo并添加remote:
    cd${PROJECT},而不是clonning;git-init;git远程添加源ssh://${USER}@${HOSTIP}${PROJECT}.git
  • 在另一台计算机上克隆的非裸repo中进行初始提交:
    git add;git commit-m“初始提交”-a
  • 将主机从另一台机器推送到NAS上的裸repo:
    git Push origin主机

  • 我很困惑。你为什么要同时进行新的无担保回购和常规回购?ups,我链接了错误的操作方法。我遵循了……在我看来,第二个非裸repo是不需要的。而且,我认为在同一个平台上链接repo不需要ssh连接machine@evolutionxbox需要SSH连接才能从其他机器连接到NAS上的远程裸repo。谢谢,是的,实际上有点过于复杂了。尽管如此,我还是会保持这种方式,因为这样我就可以从任何其他机器上查看回购协议,并开始实际操作。否则,我将不得不在以后添加远程原点。