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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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
如何使一个分支与git中的另一个分支相似_Git_Github_Version Control - Fatal编程技术网

如何使一个分支与git中的另一个分支相似

如何使一个分支与git中的另一个分支相似,git,github,version-control,Git,Github,Version Control,我有两个分支,分别是master和dev Master已经老了,我想让dev如此有效地进入Master: 删除master中的所有文件 将所有文件从dev复制到master 所以在那个时候,master和dev变得相同,没有将dev合并到master中 我可以通过以下方式完成此操作: 切科特发展分部 在我的硬盘上的某个地方复制一份dev branch 从硬盘上的dev branch副本中删除.git 结帐总支 删除工作目录中除.git以外的所有文件 将所有文件从dev复制到working dir

我有两个分支,分别是master和dev

Master已经老了,我想让dev如此有效地进入Master:

  • 删除master中的所有文件
  • 将所有文件从dev复制到master
  • 所以在那个时候,master和dev变得相同,没有将dev合并到master中
  • 我可以通过以下方式完成此操作:

  • 切科特发展分部
  • 在我的硬盘上的某个地方复制一份dev branch
  • 从硬盘上的dev branch副本中删除.git
  • 结帐总支
  • 删除工作目录中除.git以外的所有文件
  • 将所有文件从dev复制到working dir(所有文件与dev branch相同,不同于.git目录中的文件,但现在它位于master brach中)
  • 提交主分支

  • 但是我想知道在git中这样做的正确方法是什么?

    这很容易解决-使用分支重命名重命名现有的主分支,然后从
    dev
    分支签出名为
    master
    的新分支

    git checkout dev
    git branch -m "master" "master_old"   #rename existing master branch
    git checkout -b master                #recreate master from dev
    
    此外,使用

    git push upstream -f master
    
    如果现在执行
    git分支
    ,您将看到

    $) git branch
      dev
    * master
      master_old
    

    你为什么要这么复杂?为什么不干脆
    git reset--hard dev
    ?@AlexeyTen因为我不知道git reset--hard dev是否做了我想做的事?它在做什么?它将使当前分支(比如master)成为dev的精确副本。请参阅@AlexeyTen以便使用它,我应该在master分支中,并发出该命令以将我的分支硬重置为dev的可能副本