为了账号安全,请及时绑定邮箱和手机立即绑定

Git2go:在 CreateCommit() 之后,所有文件看起来都像是被添加删除

Git2go:在 CreateCommit() 之后,所有文件看起来都像是被添加删除

Go
萧十郎 2022-01-10 10:41:31
使用 git2go 我在新克隆的目录上执行 AddAll() 和 CreateCommit()。Push() 工作正常,当我将遥控器克隆到另一个地方时,我得到了所有提交的文件。但是如果我调用git status第一个目录,那么我会得到:(对不起德语,我没有正确的翻译,这意味着分支与起源/主人在同一位置,'gelöscht'手段'deleted'和'Unbeobachtete dateien'手段'unwatched files')Auf Branch masterIhr Branch ist auf dem selben Stand wie 'origin/master'.zum Commit vorgemerkte Änderungen:  (benutzen Sie "git reset HEAD <Datei>..." zum Entfernen aus der Staging-Area)    gelöscht:               .gitignore    gelöscht:               html/.gitignore    gelöscht:               images/.gitignore    gelöscht:               json/.gitignore    gelöscht:               pjs/.gitignore    gelöscht:               pjs/test37.pjs    gelöscht:               pjs/test37.png    gelöscht:               sounds/.gitignoreUnbeobachtete Dateien:  (benutzen Sie "git add <Datei>...", um die Änderungen zum Commit vorzumerken)    .gitignore    html/    images/    json/    pjs/    sounds/我期望的是以下内容:Nothing to commit. No files changed. (or similar)我的代码: // Addrepo, err := git.OpenRepository(dir)index, err := repo.Index()err = index.AddAll([]string{}, git.IndexAddDefault, nil)treeId, err := index.WriteTreeTo(repo)tree, err := repo.LookupTree(treeId)// Commitsig := &git.Signature{    Name:  userName,    Email: userName + "@" + beego.AppConfig.String("userdata::emailserver"),    When:  time.Now(),}commitId, err := repo.CreateCommit("HEAD", sig, sig, message, tree)// Pushremote, err := repo.LookupRemote("origin")    err = remote.Push([]string{"refs/heads/master"}, nil, sig, message)(我把所有的错误处理都去掉了,让它更短)
查看完整描述

1 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

您正在打开当前存储库的索引:

index, err := repo.Index()

你正在改变它,并创建一个新的树,然后你创建一个提交:

err = index.AddAll([]string{}, git.IndexAddDefault, nil)
treeId, err := index.WriteTreeTo(repo)

git add命令行不同,AddAll没有将索引写回磁盘。此功能允许您将索引用作数据结构,而无需立即实际暂存更改。(许多 libgit2 函数,如 merge 和 rebase 使用索引作为通用数据结构,您可以继续修改或转换为树。)

因此,此时,对索引的所有更改都保留在内存中。如果要保留更改,则必须将索引显式写回磁盘:

index.Write()


查看完整回答
反对 回复 2022-01-10
  • 1 回答
  • 0 关注
  • 127 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信