Git推送不更新源

Git推送不更新源,git,egit,Git,Egit,我真正广泛使用的唯一版本控制软件是Subversion。不过,我喜欢git的功能集和性能,所以我选择在未来的项目中使用它进行版本控制 我正在使用Eclipse的eGit插件。我的问题是,当我向上游推送时(报告成功),源代码没有更新。如果我查看版本历史记录,我可以看到推式提交 如果这是Subversion,我将执行“更新”,并且我的更改将在源位置同步。这显然有点不同,因为我不再处理单一的集中式存储库 是否有什么我做错了或根本没有做的事情,我可以在源代码处更新源代码?如果答案可以面向使用eGit接口

我真正广泛使用的唯一版本控制软件是Subversion。不过,我喜欢git的功能集和性能,所以我选择在未来的项目中使用它进行版本控制

我正在使用Eclipse的eGit插件。我的问题是,当我向上游推送时(报告成功),源代码没有更新。如果我查看版本历史记录,我可以看到推式提交

如果这是Subversion,我将执行“更新”,并且我的更改将在源位置同步。这显然有点不同,因为我不再处理单一的集中式存储库

是否有什么我做错了或根本没有做的事情,我可以在源代码处更新源代码?如果答案可以面向使用eGit接口而不是git命令行实用程序,那将特别有用


谢谢

您确定您已向本地回购协议添加并承诺了任何内容吗

在命令行上,这将需要:

$ git add .
$ git commit -m "Some comments about what I've done"
这两项行动都是必要的<代码>添加将其添加到索引/暂存区域<代码>提交实际上创建了一个新的提交对象

检查这一点的一种方法是,再次从命令行:

$ git status
如果它显示一堆未被跟踪和/或未添加到暂存区域的文件。这是你的问题

如果它向您显示所有内容都是最新的且未经编辑,那么我会检查以确保HEAD指向的提交与您的遥控器不匹配

以下其中一项可以为您做到这一点:

$ git log
$ gitk --all
如果一切都像它应该的那样,意味着你的本地人都犯了罪,而远程人却没有,那么我会说罪魁祸首在于EGit,而我不是这方面的专家

也不是说我是git专家。:)


如果您打算在一个偏远的地方从本地推送
,并让它用您的最新更改更新文件系统,那么您就找错地方了


可以在远程回购协议上写一个自动签出推送日期的通知,但同样不鼓励这样做。一个更合理的解决方案是简单地使用,然后使用scp/rsync/ftp将您的文件发送到其他地方的平面存储。你甚至可以编写一个钩子来完成这项工作,当你在某处推送或者简单地提交时。

你确定你已经向本地回购协议添加并提交了任何内容吗

在命令行上,这将需要:

$ git add .
$ git commit -m "Some comments about what I've done"
这两项行动都是必要的<代码>添加
将其添加到索引/暂存区域<代码>提交实际上创建了一个新的提交对象

检查这一点的一种方法是,再次从命令行:

$ git status
如果它显示一堆未被跟踪和/或未添加到暂存区域的文件。这是你的问题

如果它向您显示所有内容都是最新的且未经编辑,那么我会检查以确保HEAD指向的提交与您的遥控器不匹配

以下其中一项可以为您做到这一点:

$ git log
$ gitk --all
如果一切都像它应该的那样,意味着你的本地人都犯了罪,而远程人却没有,那么我会说罪魁祸首在于EGit,而我不是这方面的专家

也不是说我是git专家。:)


如果您打算在一个偏远的地方从本地推送
,并让它用您的最新更改更新文件系统,那么您就找错地方了


可以在远程回购协议上写一个自动签出推送日期的通知,但同样不鼓励这样做。一个更合理的解决方案是简单地使用,然后使用scp/rsync/ftp将您的文件发送到其他地方的平面存储。你甚至可以编写一个钩子来完成这项工作,当你在某个地方推送或者简单地提交时。

你说的“源代码在源代码处”是指源代码处的工作树吗?您需要
git checkout
原始计算机上的分支,以便将工作树更新为最新版本

所谓“源代码在源代码”是指源代码处的工作树吗?您需要
git checkout
原始计算机上的分支,以便将工作树更新为最新版本

谢谢,这正是我想要的。我想在eGit中没有“提交”功能——你必须进行“硬重置”。谢谢,这正是我想要的。我想在eGit中没有“提交”功能——你必须进行“硬重置”。谢谢你的建议,蒂姆。我想我肯定找错人了。我已经习惯了在subversion模式下工作,我和其他1-2名开发人员总是在主线上工作,在出现提交冲突时合并冲突。git的不同之处在于每个开发人员在处理相同的源文件时都必须创建一个新的分支吗?如果不是,那么旧的源文件将被最后一个推到存储库中的文件覆盖。我不知道git提供了编写钩子的方法。我肯定会考虑在提交到主存储库时运行rsync。我不确定我是否完全遵循了您的流程。你的意思是你和其他几个开发人员同时在同一个物理目录中工作吗?如果不是这样的话,那么是的,git不会强迫你在每次你想处理别人的同一个文件时创建新的分支。每个人都可以处理您想要的任何文件,但当您想要其他人更改集时,您需要将其合并到中。Git在合并方面非常聪明,但是冲突可能会发生。在这种情况下,您可以合并它们,就像您已经在做的那样。也许我可以更清楚地说明你的观点。:)谢谢你的建议,蒂姆。我想我肯定找错人了。我非常习惯在subversion模型下工作,我和其他1-2名开发人员总是在主线上工作,在提交冲突时合并冲突