我是 git 新手,不知何故破坏了一些东西。这一切都始于冲突,然后我解决了它,再次添加文件并推送。据我了解,这应该没问题。后来,当我制作新的克隆时,我很长一段时间都在下载该项目的损坏版本。当我试图拉取存储库时,我收到一条消息说Already up-to-date.
。所以经过一番思考,我做了一个小改动,再次承诺并推动。为了测试这一点,我再次在另一个目录中做了一个新的克隆,然后突然得到了工作版本,没有最后的小改动。就像推送是最后一次提交之后的一个版本。我检查了HEAD
文件:$ cat .git/HEAD
输出ref: refs/heads/master
对我来说似乎没问题。我真的不知道去哪里看。
有朋友问我有没有推过--force
,我没有。(而且我不知道那会做什么)。
我也尝试将新的克隆下载到新目录中,然后简单地在那里继续我的工作,但仍然存在相同的效果,推送是一个提交。
当我在 bitbucket 中查看提交时,我得到了类似的东西(M-me,F-friend 如何与我一起在项目上工作)
F--F--F---
/ \
...--M---------M--M--M
编辑
以下是请求的输出:
$ git pull
Password:
Already up-to-date.
$ git branch -a -v
* master 9247247 [ahead 1] Martin test commit 1. (with -a flag)
remotes/origin/HEAD -> origin/master
remotes/origin/master ddb4cbf Another try
$ git log --graph --format=%h
* 9247247
* ddb4cbf
* 9ec3835
* 2c5fd4c
* e5dd998
|\
| * 20bc5e1 (* This is the conflict I mentioned *)
| * 04a45a5
| * 7c57c81
* | 1d91307
|/
* 223948e
* f43648d
* a5ec578
|\
| * 4e77b8b (* This is a test conflict we made, to see how it works *)
* | 20fa9af
|/
* ffe048d
* 90ea6fc
* 0e529f9
* 1622945
* 2207b8a
这导致我运行git log
并且git show
都显示最后一次提交是Martin test commit 1.
但是我稍后在我写的地方做了一个提交Martin test commit 2.
编辑 2
另一件连线的事情:有一个修改过的文件,但是no changes added to commit
. 什么?为什么?(git ls-files
显示 index.html 文件 - 这意味着它是上演的吗?)
$ git status
# On branch master
# Your branch is ahead of 'origin/master' 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: index.html
#
no changes added to commit (use "git add" and/or "git commit -a")
可能的原因:remotes/origin/HEAD -> origin/master
但是remotes/origin/master ddb4cbf Another try
。我怎样才能让他们指向同一个提交?
编辑 3
$ git push origin master
Password:
Everything up-to-date
$ git remote -v
origin https://martin@bitbucket.org/O....s.git (fetch)
origin https://martin@bitbucket.org/O....s.git (push)