问题标签 [git-bare]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 使用裸存储库挂钩将服务器恢复到过去的提交
我有一个带有裸 git 存储库的服务器,我推送到该存储库以进行实时部署。它有一个简单的post-receive
钩子,可以用最新的master
.
当在生产服务器上发现错误时,我有时需要恢复到特定的过去提交(我在本地测试自己,但我没有捕获所有内容)。有没有一种很好的*方法可以通过此设置恢复到过去的提交?
*我说的好,我的意思是像推送到裸存储库这样的单行代码:git push prod master
git - 推送到裸 Git repo 上的分支
我在生产服务器上创建了一个裸 Git 存储库。然后我将我的本地仓库推送到了裸仓库,并且成功了。但是,我随后意识到我应该将我的生产仓库推送到裸仓库,因为我的本地仓库已经过时了。所以我尝试了,但我得到了一个错误。所以我尝试在裸机上创建一个“生产”分支并推动它。问题是,当我执行“git push /var/www/html.git(我的裸仓库)”时,它报告说它无法更新“master”。如何推送到裸机上的“生产”分支?(我也尝试过“git push master production”,但这似乎没有引用裸仓库的“生产”分支)
git - 在对现有存储库进行裸存储库克隆后,是否可以将原始存储库视为裸存储库的克隆?
一个问题:我有一个带有工作目录的现有 git 存储库。我想开始与团队共享此存储库。我做了以下事情:git clone --bare repo_dir repo_dir.git
并让团队克隆了repo_dir.git
. 现在,我想repo_dir
随时了解推送到裸仓库的任何更改。方法是从 中删除远程源repo_dir.git
并添加一个远程源以repo_dir
指向repo_dir.git
. 那是:
我尝试更新原始存储库:git pull origin master
它似乎工作正常,但我担心可能有一些其他配置保持不变,会导致奇怪的行为。可以将此原始存储库视为裸存储库的克隆,还是必须进行其他更改?有人对此有任何见解吗?
谢谢!
git - 为什么不能合并到一个裸 git repo 中?
为什么我不能merge
进入一个裸回购?裸仓库没有HEAD
工作树。在配置文件中我们可以看到bare=true
.
你也不能pull
在一个裸仓库中(因为 pull = fetch & merge 和 merge 不起作用)。但是,你可以推送到一个裸仓库——为什么?据我所知,push
还包含一个合并,但在这种情况下我们可以做得很好。
所以,问题可能是“git merge 是如何工作的?”。为什么需要一个HEAD
?合并时它在做什么?
git - Windows 文件服务器上的共享 Git 存储库(失败)
在有人跳进来并把我推荐给以前的帖子之前,让我说,我已经完成了所有这些,但没有成功。
正如标题所说,我正在尝试使用本地路径(例如)在 Windows 文件服务器上设置一个共享的 git 存储库s:\SharedProjects\foo
,其中每个开发人员都有一个本地存储库(例如c:\MyProjects\foo
)。
到目前为止,我已经设法创建/克隆存储库,但我无法将本地用户的更改推送到共享目录。我尝试将其设置为--bare
存储库,我尝试设置--git-dir
and --work-tree
,但我总是遇到不同的问题。
将 repo 设置为裸机,所有 git-dir 文件 ( .git/*
) 都位于我的根目录 ( s:\SharedProjects\foo\[config, HEAD, ..*]
) 下,并且不允许我执行其他存储库任务,例如git ls-files
or git status
,表示这些操作必须在工作目录中进行。
我将工作目录设置在我的裸存储库之上(例如\SharedProjects\bar
),我无法对其执行任何操作,因为它无法识别 git 存储库:|
我在这里发疯了..我一直在尝试各种方式来设置--git-dir
and --work-tree
,将我的存储库设置为--bare --share=everybody
..我现在不知道自己在哪里!
有人可以提供有关创建存储库(在 Windows 文件共享上)的具体分步说明,该存储库将允许中央存储库管理以及本地存储库推/拉操作吗?
谢谢大家!
git - git 1.7 和 1.8 之间“git clone --bare”的区别:复制遥控器
假设我有一个带有远程命名源的简单 git 存储库:
然后,如果我在 git 1.7.0.4 中对其进行了裸克隆,它不会复制有关遥控器的任何信息:
然而,使用 git 1.8.4,origin 被成功复制:
在克隆/配置中具有相应的条目:
这只是使一个非常流行的答案不正确,因为git clone --bare && git remote add
不再有效(git拒绝添加已经添加的遥控器)。
我的问题是:我是否在 git help 中遗漏了一些内容,说远程复制是自某些版本的 git 以来的预期行为?这种行为究竟是什么时候改变的?我在发行说明中也找不到任何信息。
git - Git推送到远程失败:无法创建../refs/heads/master.lock:无效参数
我在远程服务器文件夹 /home/bare/mygit.git 中初始化了我的 git 裸仓库
我已经克隆了这个 repo:
然后我正在处理项目,进行提交/推送等......
但是今天我在推送时注意到了这个错误:
我搜索了这个问题,但似乎大多数人都有权限问题。但在那种情况下,错误看起来不同(比如 Permission denied 或其他东西)。
权限没问题,克隆/拉/取也没问题。日志中没有错误或类似的东西。
git - 了解 git 标记、变基和裸仓库
在 git 中:
- 您标记分支或存储库吗?
- 当您标记分支/存储库时,您是仅标记完全提交的更改,还是还标记已添加/暂存的更改?
- 在什么情况下需要重新设置分支?合并不能为您提供所需的一切吗?
- 什么是“裸”存储库?它如何反对“非裸”回购?
提前致谢!
windows - Git: 无法推送 {n/a (unpacker error)}
我在本地机器[Windows OS] 中创建了一个裸仓库并安装了 gitolite。
当我尝试将更改推送到裸仓库时,出现以下错误:
我用谷歌搜索了同样的错误,但到处都是权限,它是特定于 linux 的。谁能帮我在 Windows 操作系统上解决这个问题。
因为我是我电脑的管理员,所以希望权限不会成为问题。
请帮助我。
git - 为什么 git checkout 从一个裸仓库删除而不是创建?
这有点奇怪,如果在我的具体情况之外没有太多应用,我提前道歉。我正在使用 git 通过提交和标记一组与部署相关的生成文件和指向发布代码的子模块来管理我的部署包。我正在尝试从每台机器上的裸仓库中将此部署标签的 git 签出到不同的空目录中。我得到的输出表明它已经删除了它应该创建的文件,并且工作树目录之后仍然是空的。
我应该声明 my_tag 引用的提交和 master 的提示都具有相同的 4 个文件(尽管内容不同)。这让我很奇怪,以下程序让我走了 75% 的路:
问题是,“发布”是一个 git 子模块,如果没有 .gitmodules,我无法初始化或更新它,所以 75% 的方法仍然不够好。
这个问题的一个解决方案是每次部署时都简单地重新克隆 repo,如果没有人能提出更好的解决方案,我可能会这样做。但理想情况下,我想在每台机器上保留一个裸仓库,每次都从该仓库签出到新的工作树。谁能告诉我这里发生了什么?
作为参考,我使用的是 Git 1.8.2.1。