相关疑难解决方法(0)

是否可以在Git中移动/重命名文件并保留其历史记录?

我想在Git中重命名/移动项目子树

/project/xyz
Run Code Online (Sandbox Code Playgroud)

/components/xyz
Run Code Online (Sandbox Code Playgroud)

如果我使用普通的git mv project components,那么所有的提交历史xyz project都会丢失.有没有办法移动这个以保持历史?

git rename mv

630
推荐指数
11
解决办法
32万
查看次数

git如何检测类似文件的重命名检测?

维基百科解释了自动重命名检测:

简而言之,给定修订版N中的文件,修订版N-1中的同名文件是其默认祖先.但是,当修订版N-1中没有同名文件时,Git会搜索仅存在于修订版N-1中的文件,并且新文件非常相似.

重命名检测显然归结为类似的文件检测.这个算法记录在哪里吗?很高兴知道自动检测到哪种变换.

git

85
推荐指数
2
解决办法
2万
查看次数

git 将所有内容向上移动一级,适用于所有分支

我想将 git 存储库中的所有内容向上移动一级,并且需要将其应用于我拥有的每个分支。从字面上看,我有:

+--repo
+----+.git
+----+folder
+--------+ A
+--------+ B
Run Code Online (Sandbox Code Playgroud)

我只想:

+--repo
+----+.git
+----+A
+----+B
Run Code Online (Sandbox Code Playgroud)

这篇文章如何将所有 git 内容在文件夹层次结构中向上移动一级?有一个很好的答案,建议这样做:

git mv folder/* ./ -k
Run Code Online (Sandbox Code Playgroud)

现在我如何处理所有分支?我能想到:

  • 为主人做git mv,然后git rebase为所有人,在主人上

  • git mv为所有分支做吗?

一个比另一个有优势吗?我也看到了一些基于git filter-branch --index-filter(answer here ) 的答案但不明白如何将其应用于我的案例。

谢谢!

git git-filter-branch

4
推荐指数
1
解决办法
235
查看次数

如何将git仓库的根目录上移一级?(没有移动的子文件夹)

我有一个具有以下文件夹结构的本地Git存储库。

kronos
|-- org_maps
|   |-- attach_departments.ahk
|   `-- attach_jobs.ahk
|-- org_sets
|   `-- create_org_sets.ahk
`-- labor_level_sets
    `-- create_labor_sets.ahk
Run Code Online (Sandbox Code Playgroud)

我想通过将根文件夹上移一层来扩展Git存储库的范围。

scripts
|-- kronos
|   |-- org_maps
|   |   |-- attach_departments.ahk
|   |   `-- attach_jobs.ahk
|   |-- org_sets
|   |   `-- create_org_sets.ahk
|   `-- labor_level_sets
|       `-- create_labor_sets.ahk
`-- peoplesoft
    `-- kronos
        `-- add_elig_departments.ahk
Run Code Online (Sandbox Code Playgroud)

我已经阅读了如何移动git存储库的根目录?,但最重要的答案是重写历史记录,我想避免这种情况。

如何在不重新定位现有文件和子文件夹的情况下将git存储库的根目录上移一个级别?

git directory

1
推荐指数
1
解决办法
238
查看次数

标签 统计

git ×4

directory ×1

git-filter-branch ×1

mv ×1

rename ×1