Git Pull - 一切都是最新的,但事实并非如此

时间:2011-12-02 01:07:07

标签: git

我正试图从一个包含大约10个文件的存储库中提取。在我的本地存储库中,我只有一个文件。当我输入

git pull origin master

我回来了“一切都是最新的”

但是,我仍然缺少存储库中的那9个左右的文件。关于为什么会发生这种情况的任何想法?

5 个答案:

答案 0 :(得分:7)

检查您是否在正确的分支机构并检查了与之比较的相同修订版:git checkout HEAD

答案 1 :(得分:2)

我有类似的问题,但需要一个不同的解决方案。一台计算机上的本地版本没有从GitHub仓库获得更新,这是基于我前一天晚上从第二台计算机上完成的工作而推出的。它一直告诉我所有文件都是最新的,尽管第一台计算机上的文件显然与第二台或GitHub上的文件不同。

最终为我解决了这个问题的原因是在第二台计算机上添加了一个垃圾.txt文件(新的和其他所有内容不同,因此不存在合并冲突)。我把那个文件推到了回购中,然后重新尝试从第一个开始。当它看到新文件时,它就完成了拉动,并进行了所有其他更改。

我确信有一个更好的解决方案,这是我用git做错了,但是因为它有效,我想发布它,以防其他人遇到问题我。

答案 2 :(得分:0)

git pull的工作是fetch次新提交,merge只能进入当前分支。

如果当前分支与您拉出的分支相比没有过时,请拉出Already up-to-date. 如果您的工作目录中有任何本地更改,则忽略它(它与之无关)此)

注意: git pull仅关注分支&新的提交,而不是工作树。

答案 3 :(得分:0)

对我来说,它设法拉出另一个已经与master合并的分支。

  1. git checkout master
  2. git pull origin name/of/other/branch

答案 4 :(得分:0)

我担心这些答案,如以下控制台历史记录所示。简而言之,我在一台机器上将更改推送到了开发分支。我用相同的存储库切换到另一个,并在同一分支中执行了git status。状态显示为“您的分支是最新的'origin / develop'”。 然而!当我进行一次拉动时,它降低了更改以及之前未检测到的更改。这是控制台历史记录:

我已经安装了liquidprompt,并且显示了我所在的分支。

[:~/bin] develop* ± git status
On branch develop
Your branch is up to date with 'origin/develop'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    create-report

nothing added to commit but untracked files present (use "git add" to track)
[:~/bin] develop* ± git add -A
[:~/bin] develop(+0/-0) ± git commit -m "Create a report for a given month"
[develop 8f1fd89] Create a report for a given month
 1 file changed, 13 insertions(+)
 create mode 100755 create-report
[:~/bin] develop(1) ± git push
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 552 bytes | 552.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/userid/project.git
   c6f5210..8f1fd89  develop -> develop
[:~/bin] develop 3s ± ssh my_server
Last login: Mon Mar 30 20:12:23 2020 from 10.0.1.131
[userid@my_server:~] $ cd bin
[userid@my_server:~/bin] develop 3s ± git status
On branch develop
Your branch is up to date with 'origin/develop'.  (THIS CONCERNS ME)

nothing to commit, working tree clean 
[userid@my_server:~/bin] develop 5s ± exit
logout
Connection to my_server closed.
[:~/bin] develop 21s ± git_log
8f1fd89 - (HEAD -> develop, origin/develop) Create a report for a given month (18 minutes ago) <userid>
c6f5210 - Added scripts to deal with growl (4 hours ago) <userid>
b828a96 - Merge branch 'develop' of https://github.com/userid/project into develop Bring in changes from my_server (11 hours ago) <userid>
...
[:~/bin] develop ± ssh my_server
Last login: Tue Mar 31 21:35:49 2020 from 10.0.1.131
[userid@my_server:~] $ cd bin
[userid@my_server:~/bin] develop 2s ± ls create*
create_job*.  (N.B. there is not a create-report script)
[userid@my_server:~/bin] develop 8s ± git pull
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 7 (delta 2), reused 7 (delta 2), pack-reused 0
Unpacking objects: 100% (7/7), done.
From https://github.com/userid/project
   b828a96..8f1fd89  develop    -> origin/develop
Updating b828a96..8f1fd89
Fast-forward
 brew-update-notifier | 42 ++++++++++++++++++++++++++++++++++++++++++
 create-report  | 13 +++++++++++++
 growlit              | 16 ++++++++++++++++
 3 files changed, 71 insertions(+)
 create mode 100755 brew-update-notifier
 create mode 100755 create-report ( N.B. And it appears!)
 create mode 100755 growlit

为什么会这样?显然,有一个推送到develop分支的请求,并且状态在另一台服务器上没有显示任何内容,然后通过拉取来删除了所推送的文件。