【发布时间】:2013-05-19 04:11:28
【问题描述】:
我在生产中的现有未版本化源树上设置了一个存储库 (git init)(不要告诉我)。
在初始导入提交后,我在我的开发机器上克隆了 repo 并开始编辑。
在第一次提交/推送之后,我的本地副本上的一切似乎都很正常,但在 prod 服务器上 git pull 总是说“已经是最新的”。并且更改显示为本地修改“否定”。
为了澄清我的否定含义:假设除了编辑之外,我在本地副本上添加了一个文件 (myfile) 并提交/推送它。
我将在服务器上看到的是:
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
# deleted: myfile
还有一系列的:
# modified: other_file
这反映了我刚刚提交的文件,但我的更改已“还原”。 git log 中的历史似乎是线性且一致的。
这是服务器上 .git/config 的内容:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = user@host:repo
[branch "master"]
remote = origin
merge = refs/heads/master
在我的本地副本上它是相同的加号:
ignorecase = true
precomposeunicode = false
在 [核心] 部分。
- 开发机器git版本1.8.1.1
- prod machine git version 1.5.6.5(我知道,它很旧,但我现在无法更新)
可能与跟踪有关吗? 我现在很困惑,更糟的是,似乎我是整个互联网上唯一遇到类似情况的人。
【问题讨论】:
-
为了在实践中获取服务器上的更改,我需要将每个修改的文件重置为 HEAD 并从上次提交中检出(提交历史记录正确且一致)。我注意到的另一件事(但我不能说它是否正常)是当我从生产服务器中提取时,git 会询问我 ssh 用户密码,就好像要远程获取更改一样。他们不是已经在服务器上了吗?
标签: git push pull git-remote