0

我设置了 2 个非裸存储库和一个裸存储库。

在第一个存储库提交给自己然后推送到裸存储库直到这里一切正常之后。

然后在第二个存储库中,我克隆了裸存储库并将内容放入第二个存储库。

然后在第二个仓库中,我添加了一个新文件并提交给自己,但我还没有投入到裸仓库中。

然后我执行 git status 并收到类似“您的分支比 origin/master 提前 1 次提交”这样的消息:所以这是自然行为,因为我还没有推送到裸仓库。

后来我推入裸仓库并 cd 到裸仓库并执行git log,我看到最新的提交是成功的。

然后我返回到第二个 repo 并执行git status,但我仍然收到消息“您的分支比 origin/master 早 1 个提交”。

为什么即使在裸仓库具有最新提交后我仍然收到相同的消息。

**EDIT**:And if I try to pull or fetch the message still remains.
1) user@ubuntu:~/user2$ git pull /home/user/central [/home/user/central-Bare repo]

2) user@ubuntu:~/user2$ git fetch /home/user/central
From /home/user/central
 * branch            HEAD       -> FETCH_HEAD [And this fetch command has no output why does this happen.Am I fetching correctly]

当我对 master 和 origin/master 进行 diff b/w 时,我得到以下信息:

user@ubuntu:~/user2$ git diff master origin/master
diff --git a/anotherfile.txt b/anotherfile.txt
deleted file mode 100644
index 6acd600..0000000
--- a/anotherfile.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-This is a second file to be committed
-hello

我在 user2 repo 中添加了一些文件,user2 的 git log 是 non-bare repo,bare repo 的 git log 是相同的。user2 repo 的 git status 如下所示:

user@ubuntu:~/user2$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 4 commits.
#
nothing to commit (working directory clean)

非裸repo user2中的git branch -vva结果如图所示:

user@ubuntu:~/user2$ git branch -vva
* master                dac4ae0 [origin/master: ahead 4] Fifth Commit
  remotes/origin/HEAD   -> origin/master
  remotes/origin/master 8cfb52f Initial Commit
4

2 回答 2

1

我想我发现了问题。首先你需要看到这个问题。

Git:从命名远程获取和从 URL 获取有什么区别?

然后我建议你在第二个代表中执行以下命令:

git remote add origin <bare repo path>
git pull origin
git push

或者当你初始化第二个 repo 时使用git clone <bare repo path>.

于 2013-01-11T07:33:42.373 回答
0

消息“您的分支比origin/master1 提交领先”意味着您的本地 master 有一个远程 master 引用 ( origin/master) 没有的提交。也许更新它以git fetch解决您的问题。

于 2013-01-11T05:10:28.113 回答