【问题标题】:Cannot pull remote repo (also permissions issues.)无法拉取远程仓库(还有权限问题。)
【发布时间】:2013-07-16 14:17:35
【问题描述】:

我目前的系统是这样的:

本地主机: 这包含了我也更改和提交的存储库。

远程直播主机: 这里是主分支

我有一个 github webhook,一旦提交更改并在本地主机上同步,它就会触发 git pull。

当我设置远程直播主机时,

git init
git pull  https://github.com/myusername/myrepo.git

它克隆了 repo,但权限都搞砸了。我更改了所有权限,一切似乎都很好。

然后我对sidebar.php进行了一些修改,并与github同步。

在远程主机上运行 git pull 时,我得到:

From https://github.com/blablabla/repo
 * branch            HEAD       -> FETCH_HEAD
Updating d676e29..9cd0f26
error: Your local changes to 'sidebar.php' would be overwritten by merge.  Aborting.
Please, commit your changes or stash them before you can merge.

但服务器上从未发生过远程更改。如果我在提交之前将本地 sidebar.php 改回原来的,同步它并拉上远程实时主机,然后它会说 Up-To-Date

我已经与这个东西斗争了 3 天,但似乎无法让它正常工作。我只希望远程实时主机从存储库中提取任何新内容,因为我从本地主机进行了同步。

【问题讨论】:

  • 您是否尝试过执行拉取请求并提交增益?
  • 是的,我提交并在拉取时从本地主机推送到 github 的任何更改都将导致远程实时出现“本地更改”错误。
  • 您是否偶然对远程服务器上的 repo 执行了任何git pushs 操作?
  • @AbeVoelker 远程服务器不应该做任何事情,然后从 repo 中提取。 FTP 已关闭,因此它可以访问其文件的唯一方法是通过 pull
  • 状态显示 sidebar.php 已更改但未提交,但是在我的本地服务器上它已提交并推送到 git。

标签: git github git-pull


【解决方案1】:

似乎 git 更改文件权限是导致问题的原因。试试

git config core.filemode false

在远程仓库中(请参阅this question 了解更多信息)。

【讨论】:

  • 哇,这解决了初始拉动更改文件权限的初始问题,谢谢!但遗憾的是,它并没有解决我的二次拉动失败的问题。
  • 你能粘贴git diff的输出吗?我想知道它是否正在更改行尾或其他内容(例如,如果您正在 Windows 机器上开发并从 *nix 机器中进行拉动)。
  • 这正是我正在做的事情。在 windows 上开发,在 CentOS 上生产
  • 在这种情况下,请尝试在远程仓库中执行git config core.autocrlf false。更多信息在这里:help.github.com/articles/dealing-with-line-endings
【解决方案2】:

当您创建 repo 时,您并没有做所有需要的事情。我不能确定,因为我曾经创建自己的远程仓库,但也许这会有所帮助。

做:

git init
touch Readme.md
git add Readme.md
git commit -am "Initial commit"
git push

然后你克隆并在本地机器上工作。

【讨论】:

  • 我还要git remote add吗?
  • 我不确定 github 是否自己做,所以是的,只是为了确定
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-27
  • 1970-01-01
  • 1970-01-01
  • 2015-06-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多