使用git管理的c ++项目在不同的机器上以相同的输入运行

时间:2012-02-08 19:43:46

标签: c++ git github

我有一个c ++项目,当给定相同的输入时,它在两台不同的机器上的运行方式明显不同。我希望程序在两台机器上运行基本相同。我跑的时候

git push origin master

在我的本地机器上,我一直在编写程序,它告诉我存储库(在github上)是最新的。我做完了

git clone

在第二台机器上,它是一个计算集群,并在那里编译代码没有错误。代码在群集上运行得很好,但似乎与程序的旧版本运行类似,而不是我个人计算机上的版本。我的问题是:github版本是否有可能过时,或者我的本地版本的代码与github版本的同步在一路上搞砸了?

请记住,当涉及到git时,我是新手。提前谢谢。

编辑:我发现这可能是由于两台机器的架构存在某种差异。它们都是x86_64英特尔处理器,但是快速逼近指数函数(取决于双精度和字节序的大小)在第二台机器上不起作用。长话短说:这不是git的问题。

2 个答案:

答案 0 :(得分:0)

你上次推后是否克隆了回购?正常的程序通常是使用clone来获取任何背景故事,然后使用“git pull origin master”进行更新(或者,如文档所述,最好是“git fetch origin”,然后是“git merge” origin / master master“,这是相同的,但是允许你更具体地说明合并应该如何发生,如果它是一个简单的开发地点并在其他地方部署然后使用pull的情况。”

正如上面的评论中所述,推送内容的过程如下:
第1步:添加文件:
git add -i
添加您已更改并想要提交的任何文件,或者您可以使用:
    git add <filename>特定于每个文件,而不是使用交互式工具 第2步:提交这些文件
git commit -m <Commit message>
或者省略-m以弹出您喜欢的编辑器,以允许您在那里定义提交消息。

第3步:将这些更改推送到您的回购(如果需要)
请记住,如果有更多的人或计算机进入回购站,那么在执行此操作之前,您应该在本地更新,方法是执行以下操作:
git pull origin master
解决可能发生的任何冲突,并推送:
git push origin master
请注意,master指定要推送的分支,将其替换为您当前可能使用的任何其他分支(如果不是master,则为默认值)。

答案 1 :(得分:0)

我会在不同位置的第一台机器上克隆git存储库,看看它是否先执行不同的操作。

如果是,我会在第一台机器上将克隆的.git文件夹与计算群集上的克隆区分开来。

理由是:

  • 有关存储库的所有信息都包含在.git文件夹中。
  • 给定一个.git文件夹,您可以重新创建整个工作树。
  • 因此,如果您的.git文件夹相同,则创建的工作树也必须相同(假设您签出的文件系统都具有相同的权限和案例的sesntivity设置)

如果diff说文件夹是相同的,那么这不是git的错,我会查看构建环境和代码。

希望这有帮助。