Почему мои коммиты через go-git датированы 1970 годом?
Я фиксирую изменения через go-git:
import (
"github.com/tcnksm/go-gitconfig"
"github.com/walterjwhite/go-application/libraries/logging"
"gopkg.in/src-d/go-git.v4"
"gopkg.in/src-d/go-git.v4/plumbing/object"
)
func stackruCommit(R *git.Repository, W *git.Worktree) {
username, err := gitconfig.Username()
logging.Panic(err)
email, err := gitconfig.Email()
logging.Panic(err)
_, err = W.Commit("commit message goes here", &git.CommitOptions{Author: &object.Signature{Name: username, Email: email}})
logging.Panic(err)
}
В своих логах я вижу это:
Date: Thu Jan 1 00:00:00 1970 +0000
Это ожидаемое поведение? Я все равно не вижу возможности пройти свидание. Беглый просмотр источника показывает, что на данный момент объект Commit не имеет ссылок...
Это правильно, или я что-то упускаю?
1 ответ
Решение
Перенести текущее время в object.Signature
. Документация дляobject.Signature
показывает, что вы можете предоставить time.Time
тип. Это также демонстрируется в примере на GitHub. Обязательно импортируйте"time"
.
_, err = W.Commit("commit message goes here", &git.CommitOptions{
Author: &object.Signature{
Name: username,
Email: email,
When: time.Now(),
},
})