我正在尝试将我们(非常小的)公司从svn转移到git,因此正在尝试工作流程。我们的主要目标是让两个开发人员(我说小公司)能够在他们的电脑上工作,晚上在他们的Mac上工作,而不会相互干扰,直到分支稳定...此时他们将分支合并回来成为主人。
每个开发人员都有一个本地仓库,我们在EC2机器上有一个简单的“原始”仓库。
到目前为止,香草,对吧?
因此,我创建了一个测试分支,并从多台计算机上对其进行了各种更改,提交,拉取,推送等操作。到目前为止一切都很好。
然后我做了:“git checkout master; git merge testBranch”在一台机器上将testBranch中的更改合并到main。
然后在我的另一台机器上我说“git checkout master”......并没有看到testBranch的变化!我也试过“git pull origin master”,但仍然看到一些文件的pre-testBranch-merge版本。
此时我可以在两台机器上说“git checkout master”并最终得到不同版本的文件,据我所知这应该是不可能的。我在执行这些命令时看到这两台机器都没有错误。
任何有关如何理解这一点的帮助都将不胜感激,谢谢。
答案 0 :(得分:1)
Git是一个分布式版本控制系统。 git checkout
不从中央服务器检查任何内容。你把SVN的结帐概念与git的checkout命令混淆了。
答案 1 :(得分:1)