Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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
将目录移动到github中的新repo_Git_Github - Fatal编程技术网

将目录移动到github中的新repo

将目录移动到github中的新repo,git,github,Git,Github,当前的回购协议看起来像这样 /ab/docter /ab/pepper /cd/.. ... 我想将整个历史记录保存在ab中,并将其移动到GitHub中的新回购中 /doctor /pepper 我试图将其拉入并手动移动到abrepo,但推入时没有历史记录:(签出所有分支,然后运行: git过滤器分支--标记名过滤器cat--删除空--子目录过滤器ABC--all 您想使用“git子树拆分” git subtree split --prefix dir-to-extract -b selec

当前的回购协议看起来像这样

/ab/docter
/ab/pepper
/cd/..
...
我想将整个历史记录保存在
ab
中,并将其移动到GitHub中的新回购中

/doctor
/pepper

我试图将其拉入并手动移动到
ab
repo,但推入时没有历史记录:(

签出所有分支,然后运行:

git过滤器分支--标记名过滤器cat--删除空--子目录过滤器ABC--all


您想使用“git子树拆分”

git subtree split --prefix dir-to-extract -b selective-history 

来源:

如果您移动所有文件,在新分支上提交更改,然后重新设置主分支的基础,该怎么办?@KeukenkastjeXYZ这听起来像一个计划……您能注意到执行此操作的实际命令吗?可能重复的I将首先从master:git checkout-b[name]创建一个新的本地分支然后移动文件并将其全部添加:git add-A然后提交文件:git commit-m'[message]',然后将分支推送到远程:git push origin[branchname]现在您的更改位于远程上的一个单独分支上。您可以将它们重新基础或合并到主分支。首先签出主分支:git checkout master,然后合并(或rebase,我更喜欢合并):git merge[branchname]现在一切都应该井然有序了,看看你的更改是否使它成为本地主机,然后将主机推到远程(git push)!使用的资源:你能详细说明一下吗???这篇文章没有太多解释,也没有意义:(很确定你给我的命令不起作用。你看了我附加的链接了吗?里面的信息太多了。太复杂了,我不知道如何将它应用到我的案例中:(SorryClone您的回购协议的新副本。签出您关心的每个平台。很可能是所有。
git filter branch--tag name filter cat--prune empty--subdirectory filter ab/doctor--all
这将创建一个包含ab/doctor的新回购协议。将origin设置为新的裸回购协议。
git remote设置url origin PATH_to_repo.git
,然后按
git-push-all
push标签。
git-push-tags
。对其他目录重复此操作谢谢链接。这正是我要找的