Git:如何修改一个裸仓库

时间:2015-12-06 19:58:32

标签: git github version-control

我正在使用backup software通过编辑索引直接提交到裸存储库,而不是更新工作目录中的文件。

我希望将提交推送到github上的存储库,所以我将我的repo克隆为裸存储库并将备份实用程序指向它。它创建提交就好了,只要回购没有改变上游,我就可以推送到github。

如果repo确实有上游更改,git将不会因为合并冲突而让我推送,但是我也无法提取/ rebase,因为裸存储库没有工作目录来进行更改。

我能找到的一切基本上都表明我应该克隆回购,以便它有一个工作树,但我使用的软件限制了我这样做的能力。我试过,当它指向一个裸存储库时,它所做的更改不会显示在工作目录中,因此git会混淆并认为文件丢失。

希望有人比我更了解,可以对此有所了解。谢谢!

2 个答案:

答案 0 :(得分:0)

所以你不能做一个拉...但也许你可以使用' fetch'

也..为什么会有上游变化?你的备份软件不是回购商的唯一提交者吗?

答案 1 :(得分:0)

我遇到了与GitHub类似的问题。我克隆了一个GitHub仓库进入当地的裸仓库。我用它作为本地开发的核心回购。与此同时,我无辜地使用了#* @ $ GitHub自述文件编辑器。嗯...这意味着GitHub回购沿着一条路走下去,而我当地的裸仓还是另一条道路。和你一样,我无法将README.md更改合并到我的裸仓库,因为它没有工作文件夹来执行合并。

为了解决这个问题,我只是偶然发现了使用更多的回购。我不得不重新放回GitHub仓库,在我的本地环境中添加第二个远程仓库,进行合并,推送到git,然后重新创建我所有的本地仓库。我确信这是一种更简单的方法,但我想要小心。它是这样的:

git clone git@github.com:moodboom/quick-http.git quick-http-with-readme-conflict
git remote add local ../quick-http
git fetch local
git merge local/master # merge in changes, likely trivial
git push # pushes back to github
cd ..
mv quick-http.git quick-http.git__out-of-sync
git clone git@github.com:moodboom/quick-http.git --bare
cp quick-http.git__out-of-sync/config quick-http.git/

[ - bare]克隆不会为您设置遥控器,这就是我将旧配置复制回原位的原因。

我现在真的不喜欢GitHub的README.md编辑器! : - )

最后一个想法,这听起来像个坏主意......

  

通过编辑索引直接提交到裸存储库,而不是更新工作目录中的文件