Как имитировать `go-git` `PlainInit()`с помощью Init()`?

Я могу использовать src-d/go-gitPlainInit() имитировать команду CLI $ git init <new_repo>, но как получить тот же результат с Init()?

Это то, что я придумал до сих пор, но это не дает таких же результатов. Результаты выглядят одинаково, но файлы / каталоги не вложены в <new_repo>/.git каталог, как показано ниже.

package main

import (
    "fmt"
    "log"

    "gopkg.in/src-d/go-billy.v4/osfs"
    "gopkg.in/src-d/go-git.v4"
    "gopkg.in/src-d/go-git.v4/storage/filesystem"
)

func main() {
    directory := "new-repo-go-git"
    fs := osfs.New(directory)

    sto, err := filesystem.NewStorage(fs)
    if err != nil {
        log.Fatal(err)
    }
    _, err = git.Init(sto, fs)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println("DONE")
}

Результаты не то, что я ожидаю, потому что $ git init new-repo-go-git приведет к каталогам и файлам в new-repo-go-get/.git каталог.

Фактические результаты с использованием go-git с файлами / каталогами за пределами .git,

$ tree -a new-repo-go-git/
new-repo-go-git/
├── .git
├── HEAD
├── config
├── objects
│   ├── info
│   └── pack
└── refs
    ├── heads
    └── tags

PlainInit() возвращает следующее с git.PlainInit("new-repo-go-git-plain-init", false)

$ tree -a new-repo-go-git-plain-init
new-repo-go-git-plain-init
└── .git
    ├── HEAD
    ├── objects
    │   ├── info
    │   └── pack
    └── refs
        ├── heads
        └── tags

PlainInit() похоже на то, что $ git init <new_repo> возвращает:

$ git init new-repo-cli
Initialized empty Git repository in /path/to/new-repo-cli/.git
$ tree -a new-repo-cli
new-repo-cli
└── .git
    ├── HEAD
    ├── config
    ├── description
    ├── hooks
    │   ├── applypatch-msg.sample
    │   ├── commit-msg.sample
    │   ├── post-update.sample
    │   ├── pre-applypatch.sample
    │   ├── pre-commit.sample
    │   ├── pre-push.sample
    │   ├── pre-rebase.sample
    │   ├── pre-receive.sample
    │   ├── prepare-commit-msg.sample
    │   └── update.sample
    ├── info
    │   └── exclude
    ├── objects
    │   ├── info
    │   └── pack
    └── refs
        ├── heads
        └── tags

0 ответов

Другие вопросы по тегам