相关疑难解决方法(0)

如何一次删除所有Git stashes?

如何一次删除所有Git stashes?

具体来说,我的意思是,输入一个命令.

git

1280
推荐指数
11
解决办法
25万
查看次数

从git历史中删除已删除的文件

我正试图从我的git存储库中拆分一个子项目.然而,与Detach(move)子目录不同的是,在 单独的Git存储库中, 我没有它在它自己的子目录中(并且将其移入并执行上述操作仅在移动后生成历史记录).

我克隆了我想要将子项目拆分到它自己的存储库中的分支,并删除了子项目未使用的所有内容,所以基本上我可以使用它作为我子项目的存储库.

现在我想要删除不再存在于此存储库中的所有文件的历史记录,以便仅保留使其成为后代的文件的文件历史记录.

我认为必须使用git-filter-branch,但我无法弄清楚如何

提前谢谢了

git version-control git-filter-branch

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

删除git filter-branch中的大量文件

我正在将存储库从svn迁移到git.

在最后一步中,我想从历史记录中删除大量不需要的文件.

我正在尝试以下命令:

git filter-branch --prune-empty --index-filter \
  "for file in $(cat files); do git rm -rf --cached --ignore-unmatch ${file}; done" -f
Run Code Online (Sandbox Code Playgroud)

但它说参数列表太长了.

我可以像这样重写:

for file in $(cat files); do
  git filter-branch --prune-empty --index-filter \
    "git rm -rf --cached --ignore-unmatch ${file}" -f
done
Run Code Online (Sandbox Code Playgroud)

但它会经历过多次过滤分支,历史很长......所以,这需要花费太多时间.

有没有更快的方法来过滤分支删除大量文件?

git git-filter-branch git-rewrite-history

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

从存储库中删除所有Git缓存子模块

我们的团队不再使用子模块很长一段时间了,我们想通过删除所有缓存的子模块来释放一些存储库空间.

我们只需要删除以下内容吗?

rm -rf .git/modules
Run Code Online (Sandbox Code Playgroud)

或者有更推荐的方法吗?此外,如果可能,我们希望将删除推送到服务器.

注意:使用git 2.5.4和当前状态将所有内容合并到一个分支中.

注意:我们不记得旧提交中使用的子模块的个别名称.

git git-submodules

8
推荐指数
2
解决办法
9879
查看次数

删除我们膨胀的git历史的部分

我的问题:

在设置存储库的早期,错误被导致将当时的所有图像写入存储库.这在gitignore文件中很快得到纠正,不再出现问题.

现在问题是我们有一个庞大的存储库,其中包含图像的历史记录.这在本地克隆存储库时会出现问题,因为它比提示中的干净克隆需要更长的时间.

我的问题:

有没有办法删除包含永远不需要的图像的历史部分?

如果我无法删除,我可以以任何方式压缩甚至清理历史记录吗?

git

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

将多个文件和目录从一个 git repo 复制到另一个,同时保留其原始历史记录

我的要求:将一个 git repo 分解为多个 git repos,保留与原始 repo 中相同的目录结构,并保留复制到新 repo 的文件的提交历史记录。我已经尝试过的:

  1. 首先,我根据http://gbayer.com/development/moving-files-from-one-git-repository-to-another-preserving-history/ 中的建议尝试了git filter-branch --subdirectory-filter 结果:历史被维护,但只能在运行时查看 git log --follow 另外,在 Github 上无法看到原始提交历史。它只是将我的合并提交显示为该文件的唯一提交,并且不显示任何以前的提交。我仍然可以忍受这个限制并接受它作为解决方案。但我对这种方法的另一个担忧是,对于我想要复制的每个文件夹和每个文件,我需要多次克隆原始存储库,并且每次都重复所有 12 或 13 个步骤。我想知道是否有更简单的方法,因为我要移动很多文件。此外,由于该帖子已有 5 年历史,只是想知道是否有更新的更简单的解决方案可用?(出人意料的是,谷歌大多将这个博客显示为第一个搜索结果)

  2. 我尝试的下一件事是对较早的 Greg Bayer 帖子的评论http://gbayer.com/development/moving-files-from-one-git-repository-to-another-preserving-history/#comment-2685894846 这个解决方案使使用git subtree split使事情变得更简单,但结果与第一种情况中列出的结果相同。

  3. 然后我根据这个答案尝试了git log --patch-with-statgit am选项/sf/answers/799838301/ 结果:这通常会在应用补丁时遇到合并错误。我尝试了使用-m --first-parent这个答案的建议之一。这解决了错误,但没有将任何合并扩展到他们的提交中,只是将合并列为单个提交。因此大部分提交历史都丢失了。所以我添加了--3way 的另一个选项。这一遍又一遍地通过提交,并没有导致任何可接受的解决方案。

总之,我更喜欢使用第三个解决方案,如果只有一个选项可以将合并中的所有提交都列在新存储库的历史记录中。否则我必须坚持第一个解决方案,这在我的情况下有点不方便和乏味。任何建议,帮助将不胜感激。

谢谢。

git github

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