【发布时间】:2016-03-30 13:59:48
【问题描述】:
所以让我设置我的场景。我在 Spring Tool Suite (Eclipse 4.5.1) 中使用 EGit 4.1.1。我和我精通技术的同事从远程 URL 克隆了同一个 git 存储库。我的精通技术的同事更喜欢命令行,他使用 VIM 进行文件修改,然后发出命令
git add .
git commit -m "Modified file"
git push
现在更改位于远程存储库中。现在,我不太喜欢 CLI,更喜欢 GUI,我在 Eclipse 中使用 EGit。要接收更改,我右键单击项目(我最初使用 EGit 克隆的项目),转到 Team -> Pull,然后我被告知有“Nothing to fetch”。出于理智的目的,我打开了“Git Reflog”视图,我看到我同事的更改没有列出,我开始摸不着头脑。
所以我转到命令行并发出命令git pull,瞧!它拉动了我的同事的变化:
remote: Counting objects: 27, done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 14 (delta 4), reused 0 (delta 0)
Unpacking objects: 100% (14/14), done.
From git://hostname.domain.com/git-repo
* branch master -> FETCH_HEAD
Updating 123ae12..68cd2f0
Fast-forward
更好的是,我回到 Eclipse,我在“Git Reflog”视图中看到了变化,列为
Commit Commit Message Date Reflog Message
---------------------------------------------------------------
68cd2f0 Modified File 2015-12-23 pull: Fast-forward
所以,我觉得我在这里被告知的内容让我相信有一个我不熟悉的 Git 概念——我可能只是错过了一些东西。所以...
- 关于 git 的工作原理,我在这里有什么明显的遗漏吗?
- 我假设快进意味着我只是在同一个分支中将我的 HEAD 向前移动
- 如何在 Eclipse 中完成这个命令行“git pull”?
编辑:为了解决 VonC 的答案,我添加了此信息,既是更多信息,也是该问题的解决方案。
从命令行,当我(从存储库)运行cat ./.git/.gitconfig 时,我得到以下输出:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
[remote "origin"]
url = git://hostname.domain.com/git-repo.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
然而,当我进入 Eclipse 并查看 fetch 配置时,它是空白的。
【问题讨论】: