Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何设置git以保持文件同步?_Windows_Git_Tortoisegit_Git Remote_Git Checkout - Fatal编程技术网

Windows 如何设置git以保持文件同步?

Windows 如何设置git以保持文件同步?,windows,git,tortoisegit,git-remote,git-checkout,Windows,Git,Tortoisegit,Git Remote,Git Checkout,我在让我的Git存储库按我希望的方式运行时遇到了问题。我相信它可以做我想做的,但我只是不知道我自己。这是我的设置 PC1:这是我的开发机器,我在这里创建了存储库,并对其进行了更改 SERVER1:这是我的远程Git存储库所在的位置,所有更改都从PC1推送到它 这是我的QA机器。我从SERVER1克隆了Git repo。我希望从远程存储库中签出我想要测试的任何分支,并能够进行拉取以获得最新的代码 我在两台PC上都使用了Ortoisegit。我在PC1上创建了一个分支(2012_2_2),提交了

我在让我的Git存储库按我希望的方式运行时遇到了问题。我相信它可以做我想做的,但我只是不知道我自己。这是我的设置

  • PC1:这是我的开发机器,我在这里创建了存储库,并对其进行了更改
  • SERVER1:这是我的远程Git存储库所在的位置,所有更改都从PC1推送到它
  • 这是我的QA机器。我从SERVER1克隆了Git repo。我希望从远程存储库中签出我想要测试的任何分支,并能够进行拉取以获得最新的代码
我在两台PC上都使用了Ortoisegit。我在PC1上创建了一个分支(2012_2_2),提交了更改,并推送到了SERVER1。在PC2中,我选择了“切换/签出”,并签出了remotes/orgin/2012_2_2

遗憾的是,这不起作用。当我查看PC2存储库的属性时,当前分支会说“致命:ref HEAD不是符号链接”。此外,我无法提取对branch 2012_2_2所做的更改。当我从菜单中选择pull时,唯一可用的分支是origin/master


我哪里出错了?

我知道了。当您切换/签出创建分支时,在Ortoise中有一个复选框。我没有勾选这个想法,认为我不需要创建分支。保持选中状态解决了我的问题。

您在PC上使用的是Ortoisegit,因此您可能不知道他们使用的是什么命令。但要将分支最初推送到服务器,如果origin指向该远程服务器,则需要执行git push-u origin newbranch。一旦分支存在,您就可以将所有分支拉到PC2
git pull origin
应该向下拉所有分支。然后您应该能够
git checkout 2012\u 2\u 2
使用命令行工具学习git可能比使用隐藏步骤的工具更容易。从长远来看,这样做会更好。我想知道,当我将远程分支签出到PC2上时,是否应该选择“创建分支”选项以拥有分支的本地副本?当您签出分支时,它应该创建它,因为它将从存储库中下来。我们可以从我的个人资料聊天,如果你想通过聊天。