【发布时间】:2017-03-10 00:47:38
【问题描述】:
我在本地机器和远程服务器上设置了三个 git 存储库。我在本地机器上更改源代码,推送到服务器上的裸仓库,登录服务器,然后从裸仓库拉到我的网站:
Local Machine SERVER
+++++++++++++++++ +++++++++++++++++++++++++++++++++
+ Source Code + + Website +
+ repo 1 ---------------->bare repo----------->repo 3 +
+ + [push] + [pull] +
+++++++++++++++++ +++++++++++++++++++++++++++++++++
我在本地机器上重置了一些提交:
HEAD
1 2 3 4
o-----o-----o-----o
git reset --hard 1
HEAD
1 2 3 4
o-----o-----o-----o
然后我将重置推送到裸仓库
git push -f
问题是,我似乎无法将它们从裸仓库拉到我的网站:
git pull origin master
From bare-repo
* branch master -> FETCH_HEAD
Already up-to-date.
编辑:git log --graph --oneline --decorate 的输出
本地机器:
* 0f8c9c7 (HEAD -> master, origin/master, origin/HEAD) commit 1
* 3e65e8f commit 0
* 821e81f commit -1
* 78c9427 commit -2
* 57ab3d3 commit -3
服务器:
* 5075401 (HEAD, master) commit 4
* 39402d0 commit 3
* 4ebbf54 commit 2
* 0f8c9c7 commit 1
* 3e65e8f commit 0
* 821e81f (origin/master, origin/HEAD) commit -1
* 78c9427 commit -2
【问题讨论】:
-
git log --graph --oneline --decorate看起来像什么?我们鼓励您删除您不想分享的任何细节。 -
各位,我以为
git reset只会影响HEAD,而HEAD只是一个没有SHA哈希的符号引用,所以不能推拉,我错了吗? @Makoto -
git reset将 HEAD 移动到工作树中的特定点。否则它代表你的树的尖端。推和拉在那里没有真正的上下文。无论哪种情况...我真的想看看我给你的那个命令的输出... -
@Makoto,对不起,你是在说我还是 OP?
-
@AndrewSavinykh:我在向 OP 讲话。无论出于何种原因,我一定是看到了你名字中的“S”并弄错了。