让我来描述一下我的场景。我正在使用Spring Tool Suite(Eclipse 4.5.1)中的EGit 4.1.1。我和一个技术熟练的同事从远程URL克隆了同一个git仓库。我的技术熟练的同事喜欢使用命令行,在VIM中进行文件修改,然后发出命令。
git add .
git commit -m "Modified file"
git push
现在变更已经在远程仓库中了。作为一个不太擅长命令行的GUI用户,我正在使用Eclipse中的EGit。为了获取这个变更,我右键点击项目(最初是用EGit克隆的),选择Team-> Pull,结果告诉我“没有可获取的内容”。为了保证正常,我打开了“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并查看获取配置时,它是空白的。