gpt4 book ai didi

linux - Gitea无法获取存储库

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:21:06 41 4
gpt4 key购买 nike

我在我的Raspberry Pi上安装了Gitea(如果有人不知道,它是一个开源的Gogs分支)。我在用户pi和用户git下尝试过。在用户pi中,gitea安装在/home/pi/gitea中,在git中安装在/home/git中。在这两种情况下,存储库目录都在安装根目录中。
我用webui创建了一个新的存储库,并且尝试了两个远程安装。

rpilocal = pi@192.168.1.125:/home/pi/gitea/repositories/uname/repositoryname
rpilocal2 = pi@192.168.1.125:uname/repositoryname
rpigitlocal = git@192.168.1.125:/home/pi/gitea/repositories/uname/repositoryname
rpigitlocal2 = git@192.168.1.125:uname/repositoryname/repositoryname

当我尝试按下 rpilocal2rpigitlocal2时,收到以下错误消息:
git push rpigitlocal2 master
git@192.168.1.125's password:
fatal: 'feralheart/leltar.git' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

当我试图用 rpilocalrpigitlocal推进时,推送成功了,但是在WebCutter中,我得到了“创建一个新的存储库或者用CLI来推动”。
怎么了

最佳答案

我在一个VPS∮上使用gitea的测试设置,遇到了可能是相同的问题。在做了各种各样的测试之后,我找到了一个适合我的解决方法。万一它能帮你…
已经起作用了
在我的例子中,让gitea创建一个带有初始“readme commit”的新git存储库是很好的。我可以clone、添加新提交和push。新提交出现在giteaweb ui中的第一个提交之后。
什么不起作用
如果我要求gitea在没有初始提交的情况下创建存储库,则gitea的web ui不会反映提交历史的推送,即。

user@client:~/projects$ mkdir myCode
user@client:~/projects$ cd myCode
user@client:~/projects/myCode$ git init
Initialized empty Git repository in /home/user/projects/myCode/.git/
user@client:~/projects/myCode$ echo "testing 1 2 3" > file.txt
user@client:~/projects/myCode$ git add file.txt
user@client:~/projects/myCode$ git commit -m0
[master (root-commit) f9d8e7] 0
1 file changed, 1 insertion(+)
create mode 100644 file.txt
user@client:~/projects/myCode$ git remote add origin git@server:gitea_repos/owner/myCode.git
user@client:~/projects/myCode$ git push -u origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 210 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@server:gitea_repos/owner/myCode.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
user@client:~/projects/myCode$

git将报告成功, git@server:gitea_repos/owner/myCode.git将继续作为远程用户使用,但 giteaweb ui将继续显示“空存储库”帮助页,而不是存储库浏览器。
变通策略
因为新提交是在非空启动的存储库上注册的, it occurred to me如果 gitea用另一个项目的完整提交历史覆盖新项目的存根提交历史,则 git可能会注意到更改。要尝试此操作,请执行以下操作:
3个简单步骤:
giteaweb ui中,创建一个新的存储库。在 New Repository创建页面上,确保在单击 Initialize this repository with selected files and template之前选中 Create Repository旁边的复选框。
在工作站上,将这个新存根作为 remote添加到具有所需提交历史记录的本地 git存储库中。
user@client:~$ cd projects/myCode
user@client:~/projects/myCode$ git remote add gitea git@server:gitea_repos/owner/myCode.git

用预期的材料覆盖生成的存根提交。
user@client:~/projects/myCode$ git push -fu gitea master
Counting objects: 97, done.
Delta compression using up to 32 threads.
Compressing objects: 100% (95/95), done.
Writing objects: 100% (97/97), 55.53 KiB | 0 bytes/s, done.
Total 97 (delta 45), reused 0 (delta 0)
To git@server:gitea_repos/owner/myCode.git
+ a1b2c3...d4e5f6 master -> master (forced update)
Branch master set up to track remote branch master from gitea.
user@client:~/projects/myCode$

注意,对于步骤3:
gitea用于force:这允许 -f执行(否则禁止)“提交树覆盖”
git用于设置上游-通过远程跟踪分支 -u将本地分支 master连接到由 gitea/master管理的主分支。
贯彻执行
这个策略有点老生常谈,我怀疑它会留下一些事情没有完成。例如,您可能希望将分支和标记推到 gitea。(我的测试还没有进行到这一步。)对于分支,请考虑 gitea,对于标记,请考虑 --all
user@client:~/projects/myCode$ git push gitea --all
user@client:~/projects/myCode$ git push gitea --tags

我祝你好运!
脚注:
∮-我在 --tags上与 gitea-1.4.2-linux-amd64合作,托管于 Ubuntu 16.04.2 LTS
<- virmach.com在提及不提交的存储库时使用“空存储库”一词,但在 git用于访问 gitea功能的内部api中(有时由 git社区成员使用),使用“裸存储库”一词。
- gitea在提到“工作树”的根目录中未嵌入的存储库(作为目录 git)时,使用术语“裸存储库”。裸存储库通常用作协作的规范副本,存储在服务器上(并且可以从服务器访问)。例如“github”服务。有时这些目录是用模式命名的 ./.git
-我尝试了许多设置变体,在 project_name.git频道 irc上四处询问,并插入代码。我所能得出的结论是, #gitea>钩子< git链中的一些差异(在空存储库和非空存储库之间变化)导致了我的vps上的这个问题。
-在此之前,我曾想过在新存根上重播所需项目的历史,但这个 gitea操作是一个非常困难的过程:所有提交都会得到新的 rebase校验和,而且,本质上,所有开发人员都必须像在新的存储库中一样重新克隆。

关于linux - Gitea无法获取存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42795419/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com