【问题标题】:Git is silently failing after push/pull推/拉后 Git 静默失败
【发布时间】:2011-12-09 05:50:21
【问题描述】:

我是管理我们公司网站的单人 IT 部门,最近建议他们让我设置版本控制。我已阅读所有教程并听过其他人的最佳工作流程版本,但是,我从一个简单的设置开始,直到我可以让这个简单的工作流程运行。

问题:设置后,推拉工作正常(即它没有显示错误),但我实际上并没有看到更改显示在我的本地计算机或服务器。

  1. 我首先对 /var/www/ 文件夹执行 git init。
  2. 然后,我通过 SSH 将远程存储库克隆到本地计算机。

    此时,我服务器中的文件显示在我的本地存储库中,没问题。

  3. 在我的本地机器上,我向 repo 添加了一个名为“development”的分支

  4. 在我的本地计算机上的 HTML 文档中添加了新的一行文本。
  5. 在开发分支上暂存并提交 HTML 文档。
  6. 推送到服务器。

    此时,更改并未显示出来。

  7. 在服务器的 master 分支上,我在 html 文件中添加了一行,一个随机的乱七八糟的文本。

  8. 暂存并提交更改。
  9. 在我的本地计算机上,我从远程存储库的主分支中提取。

再次,没有错误。但是变化没有显现出来。服务器和本地机器上的文件反映了原始内容以及我对每个文件所做的相应更改。

【问题讨论】:

  • 你在远程机器上是git init 还是git init --bare
  • 它让你推送到非裸仓库?
  • 普通初始化。 --bare 似乎不适合我正在做的事情。
  • 哇。在玩了这个之后,git 实际上输入了我的文档并破坏了它:50.56.241.135/tee-links/file1.html
  • 它不是在破坏你的工作,而是在告诉你有冲突需要解决,更多信息请参见gitguys.com/topics/…

标签: git version-control ssh repository


【解决方案1】:

当您推送到远程存储库时,它只会更新存储库的数据——文件不会被签出/更新。您可以通过添加运行 git checkout -f 的 post-receive 挂钩来解决此问题。

【讨论】:

  • 感谢@mipadi 我刚刚查看了关于此的 gitbook 文档。那么我会在 /hooks 文件夹中添加一个 .sh 文件,并使用“git checkout -f”作为脚本吗?
  • @ajkochanowicz Here's a how-to on this approach。好久没更新了,没试过,试试看吧。
猜你喜欢
  • 1970-01-01
  • 2017-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-19
  • 1970-01-01
  • 1970-01-01
  • 2014-12-13
相关资源
最近更新 更多