2016-12-05 128 views
0

我是Git中的新成员,并且存在一些无法解决的问题。 在我的服务器上安装了MS WIN服务器(本地局域网),并且每个开发者都克隆了这个回购站。我们使用SmartGit作为GUI。 在服务器(中央仓库)上没有开发或更改文件。 当一些开发人员更改某些文件并提交&推送它们时,它看起来一切正常。 但是在中央仓库(在服务器上),这些更改不适用于任何文件。相反,如果我想将所提交的更改发送到服务器,则必须“丢弃”服务器上的更改(意味着服务器的副本)。另外对于其他开发人员,只有在“丢弃”之后才能看到更改。在远程提交和推送时放弃本地git更改

我不知道这个行为是否正常,但对我来说有点奇怪。

每个开发人员都定义了本地回购以及中央回购,但是在中央回购中我没有定义开发人员的存储库。 (可以是一个问题???)

我试过git reset --hardgit clean -df以及对服务器的git bash的其他类似的命令,但没有什么帮助。

任何线索,如果挂钩可以帮助automaticaly丢弃本地更改服务器时,新提交&推?或者任何其他解决方案...?谢谢!

+0

这是有点不清楚你提到的某些陈述。首先:注意开发者不会创建“自己的仓库”,而是克隆共享仓库。此外,他们在本地克隆中设置了正确的上游存储库,以便实际上推送到远程存储库实际上被推上了。同时注意不要混淆不同分支机构的更改。总的来说,在处理你使用的GUI的论坛中提出你的问题可能更有意义,因为看起来你并不是在解决git问题,而是在讨论GUI问题。 – arkascha

+0

对于所有人来说,使用普通命令行客户端首先感受'git'可能是有意义的。命令行客户端(通常不是特定于某个特定软件)的_huge_优势在于,您可以确切知道您实际执行的操作,实际发生的操作以及实际结果。在你和真实逻辑之间没有GUI或前端,这往往使事情变得更加复杂,并引入新的混淆来源。 – arkascha

回答

1

人们推入的中央存储库应该设置为裸存储库,而不需要任何工作树。否则你不能e。 G。推送到检出分支。 Git会阻止这一点。如果您还想在某个中央位置上使用当前代码,则应该有一个额外的存储库,该存储库可以从该中央存储库中进行克隆,并将一些挂钩安装到中央存储库,以便触发另一个存储库以获取最新更改或类似内容。

0

请尝试以下步骤并验证一个接一个:

  1. 正如arkascha和吸血鬼建议,最好是直接使用git命令行(GIT的bash),每个开发者只需要使用git clone <central repo path>克隆回购到本地计算机(这个很重要)
  2. 每一个开发者在本地计算机上修改,然后提交更改
  3. 推到中央回购,请仔细检查之前,如果再mote回购是git remote -v的中央回购。如果是,则推送更改。
+0

感谢所有提示... – Tommy301

0

感谢所有的提示...

当我开始使用Git工作不到两个月前,我研究过一个可用的书籍,教程以及YouTube频道。我认为裸回购对我来说不是解决方案,因为我喜欢使用git存储库作为服务器上的备份副本。当我安装回购协议并且没有找到其中的文件副本时,我认为(如少经验)这是一种错误的方式,所以我使用了定期回购。

今天,我为服务器上的中央仓库配置裸仓库,然后为每个开发人员配置备份副本和存储库的常规仓库。现在它像魅力一样工作。本地回购等待大约3分钟以检测中央回购的变化。

再次感谢您的提示。

PS 桂界面工作得很好,而且那里没有问题。

相关问题