我在使用 git 时遇到了一个非常奇怪的问题。我有一个 ruby 应用程序在运行在 runit 管理下的服务器上。此应用程序具有自动更新功能。它执行git ls-remote
以检查是否需要拉取和服务重新启动。这部分工作正常,执行内容并拉取文件,但是:拉取之后,所有拉取的更改都保留在"changes not staged for commit"
. 执行git reset --hard
repo 后,没有为提交进行任何更改,但 repo 的本地副本显示它领先于origin/branch
X 次提交。
我不确定为什么会发生这种情况以及如何解决问题。有没有人经历过类似的事情?任何指针表示赞赏。
软件在 Ubuntu 12.04、ruby 1.9.3p448 上运行,为简单起见以 root 身份运行(runit 作为 root 运行)。文件具有正确的权限,至少看起来是这样。
代码可以在这里看到:https ://github.com/radekg/rgossip_app/blob/dev/lib/updater.rbgit pull
和
都不起作用。git fetch
git reset
*更新:*
git status
返回:
root@ip-10-222-29-69:/opt/rgossip# git status
# On branch dev
# Your branch is ahead of 'origin/dev' by 1 commit.
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: README.md
#
no changes added to commit (use "git add" and/or "git commit -a")
git diff
:
root@ip-10-222-29-69:/opt/rgossip# git diff
diff --git a/README.md b/README.md
index e7136db..e9d7360 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,3 @@
Managing Chef boxes with gossip.
-More description soon. Testing.
\ No newline at end of file
+More description soon.
\ No newline at end of file
这就是这个提交:https ://github.com/radekg/rgossip_app/commit/176e7cf764ff9ea0299ef75a21bb79a5bea11406
执行后git reset --hard
我得到:
root@ip-10-222-29-69:/opt/rgossip# git reset --hard
HEAD is now at 176e7cf Testing with commits seems stupid.