我真正广泛使用的唯一版本控制软件是Subversion。我喜欢git的功能集和性能,所以我选择将它用于我未来项目的版本控制。
我正在使用Eclipse的eGit插件。我的问题是,当我向上游推送(报告成功)时,原始源代码不会更新。如果我查看版本历史记录,我可以看到推送提交。
如果这是Subversion,我会进行'更新',我的更改将在原点同步。虽然我不再处理单个集中式存储库,但这显然有点不同。
有什么我做错了或根本不做我可以做的更新来源的来源吗?如果答案可以用于使用eGit界面而不是git命令行实用程序,那么它将特别有用。
谢谢!
答案 0 :(得分:3)
您确定已添加并向本地仓库提交了任何内容吗?
在命令行中,这将是:
$ git add .
$ git commit -m "Some comments about what I've done"
这两项操作都是必要的。 add
将其添加为您的索引/暂存区域。 commit
实际上创建了一个新的提交对象。
检查这一点的一种方法是再次从命令行:
$ git status
如果它显示一堆未被跟踪和/或尚未添加到暂存区域的文件。这是你的问题。
如果它显示所有内容都是最新的且未经编辑,那么我会检查以确保HEAD指向与您的遥控器不匹配的提交。
以下其中一项可以为您做到这一点:
$ git log
$ gitk --all
如果一切都是应有的,意味着你的本地人都已经承诺了,并且它已经提交了远程没有,那么我会说罪魁祸首在于EGit,我不是专家。
不是说我也是git专家。 :)
如果你的目的是在你的本地push
有一个远程位置并让它用你最新的更改来更新文件系统,那么你就会咆哮错误的树。 Remotes should always be bare repos, unless you really know what you're doing
可以在远程仓库上写一个hook,自动检出push
日期,但不鼓励这样做。一个更成熟的解决方案是简单地使用git checkout-index...
然后scp / rsync / ftp你的文件到其他地方的平面商店。当你在某个地方进行推送或者只是提交时,你甚至可以编写一个钩子来执行此操作。
答案 1 :(得分:1)
“原产地的源代码”是指原点的工作树吗?您需要git checkout
原始计算机上的分支,以便将工作树更新为最新的。