首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

是否可以重新安排存储库并保留重新分配的文件的提交历史记录?

是的,Git 是一个分布式版本控制系统,可以重新安排存储库并保留重新分配的文件的提交历史记录。Git 提供了强大的分支和合并功能,使得可以轻松地重新组织存储库的结构,并保留每个提交的完整历史记录。

在 Git 中,可以通过以下步骤重新安排存储库并保留提交历史记录:

  1. 创建一个新的分支:首先,在原有的分支上创建一个新的分支,以便进行重组和更改存储库结构的操作。可以使用命令 git branch <new-branch-name> 来创建新分支。
  2. 重组存储库:在新的分支上进行存储库的重组操作,包括移动、删除、重命名文件或目录等。可以使用 Git 提供的各种命令和工具来执行这些操作,例如 git mv 移动文件,git rm 删除文件,git mv 重命名文件等。
  3. 提交更改:在重组存储库之后,将更改提交到新的分支中。使用 git add 将更改的文件添加到暂存区,然后使用 git commit 提交更改。
  4. 合并分支:将新分支合并到主分支(或其他目标分支)上,以保留重新分配的文件的提交历史记录。可以使用 git merge 命令将新分支合并到主分支中。

通过上述步骤,可以重新安排存储库的结构,并保留每个提交的完整历史记录。Git 的分支和合并功能使得这个过程非常灵活和高效。

推荐的腾讯云产品:Tencent DevCloud(链接:https://cloud.tencent.com/product/cdc)

Tencent DevCloud 是腾讯云提供的一款基于 Git 的分布式代码协同开发工具。它提供了可视化的代码管理界面,并支持多人协同开发、代码分支管理、代码版本控制等功能。通过 Tencent DevCloud,团队成员可以方便地协同开发、重组存储库,并保留完整的提交历史记录。

相关搜索:我可以将现有的Subversion存储库移动到新的父存储库(并保留历史记录)吗?如何创建新的Git存储库而不是旧的,并保留提交历史?拆分Mercurial中的文件并保留双方的历史记录是否可以在保留历史记录的同时将单个文件从一个SVN存储库迁移到另一个SVN存储库?可以获取远程git日志来收集存储库的完整提交历史记录吗?github删除已删除的github存储库的提交历史记录如何在两个不同的git存储库(而不是克隆)中同步文件并保留历史记录?HashiCorp存储库是否可以提供滚动密码并保留一份副本,以便人类可以获得特定的密码我可以缩短git存储库的历史记录吗?是否有可能在GitHub中删除远程存储库的提交历史记录(最新的除外),同时保持本地存储库的所有提交完好无损?删除与存储库关联的所有文件,保留其他文件将文件提交到SVN存储库的问题存储库中的存储库,删除包含第二个存储库的存储库,同时保留其中的文件是否可以强制cvs提交到未更改的文件?是否可以删除subversion存储库中的内容?Monticello,是否可以同时保存更多的存储库?如何将更改从Git存储库的一些子文件夹同步到另一个Git存储库,以保留提交历史记录如何从BitBucket git存储库历史记录中删除带有密码的提交?是否上传包含子文件夹的文件夹并保留它们?如何将文件及其所有提交历史记录迁移到git中的新存储库?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python 技术篇-用zipfile库进行zip文件的压缩与解压实例演示,python压缩本地文件夹为zip文件并保留目录结构

首先给大家演示下 zip 文件的解压方法。...这是压缩包解压后的样式。 然后给大家看下 zip 文件的压缩过程,我的压缩方法可以直接压缩文件在当前目录下,并不把自己压缩进来,而且可以保留原来文件夹的目录结构。...参数一:压缩文件的位置 参数二:压缩后的压缩包 ''' # 提前读取,避免把压缩包自己加上去 # 这里用list()做一个克隆提前执行下,不然会在后面循环时才执行这一引用...# 压缩文件 file_to_zip(path_original, path_zip) 我把之前的压缩包删掉了,用那个 driver 文件夹重新进行压缩的,现在看到的是新生成的。...可以看到里面的结构跟我文件夹、目录的结构是一样的。 喜欢的点个赞❤吧!

1.7K10

Git中文命令大全

, 此标志绕过正常的“Git aware”传输机制, 并通过复制HEAD以及对象和引用目录下的所有内容来克隆存储库 --no-hardlinks # 强制从本地文件系统的存储库复制进程...--branch也可以在生成的存储库中提交标签并分离HEAD -u , --upload-pack # 当给定时, 通过ssh访问要克隆的存储库...用户可检查是否有给定的文件被忽略, 不管是否已存在于工作树中 --no-warn-embedded-repo # 默认情况下, git add向嵌入式存储库添加索引时会发出警告,...放弃自以来对工作树中跟踪文件所做的任何更改 --merge # 重置索引并更新工作树中和HEAD之间不同的文件,但保留索引和工作树之间不同的文件...工作树文件,无论是否修改,都将被单独保留 --ignore-unmatch # 即使没有匹配的文件,也可以用零状态退出 -q, --quiet #

30000
  • ​2019 DevOps 必备面试题——代码版本控制篇

    版本控制系统由一个中央共享存储库组成,队友可以在其中提交文件的更改,接下来你可以提到版本控制的用途。版本控制允许你: 将文件还原为以前的状态。 将整个项目还原为以前的状态。 比较一段时间内的变化。...像 Git 这样的分布式 VCS 允许所有团队成员拥有项目的完整历史记录,因此如果中央服务器出现故障,你可以使用任何团队成员的本地 Git 存储库来恢复代码库。...分布式 VCS 工具不一定依靠中央服务器来存储项目文件的所有版本。相反,每个开发人员都“克隆”存储库的副本,并在自己的硬盘上拥有项目的完整历史记录。 Q5:什么是 Git?...Q11:如何配置 Git 存储库,以在提交之前运行代码健康性检查工具,并在测试失败时阻止提交? 我建议你先简要介绍一下合理性检查。合理性或冒烟测试可以用来确定是否进行后续测试的合理性和必要性。...在此脚本中,可以运行其它工具,例如 linters,并对提交到存储库中的更改执行完整性检查。 最后给出一个例子,你可以参考下面的脚本: #!

    2.1K50

    VS Code使用Git可视化管理源代码详细教程

    VS Code内置了对Git的支持,可以使用图形化界面方便的进行版本控制,比如添加暂存,提交更新,拉取远程代码,推送代码到远程代码库,创建合并分支,文件内容差异比较等这些常规操作。...GitHub存储库的SSH链接地址: ?...2、使用实际工作开发四步曲(添,提,拉,推)教程将新添加的内容推送到远程代码库: 切换到feature-20210218分支: ? 查看文件是否提交成功: ?...b.选择需要合并过来的分支: ? ? ? c.推送至远程仓库,查看合并是否成功: ? VS Code Git提交修改历史记录查看(甩锅专用): 需要安装Git History拓展。 ?...查看对应文件的修改历史记录: ? ? 查看文件修改时间线对比文件修改内容: ? ?

    10.1K22

    如何使用Git:参考指南

    当您在本指南的命令中看到highlighted text时,请记住,此文本应引用您自己的存储库中的提交和文件。...检查Git存储库的状态,包括未分阶段添加的文件和暂存的文件。 git status 要暂存已修改的文件,请使用该add命令,您可以在提交之前多次运行该命令。...git commit --amend -m "New commit message" 分行 Git中的一个分支是指向存储库中某个提交的可移动指针,它允许您隔离工作并管理功能开发和集成。...git pull 检查 显示当前活动分支的提交历史记录。 git log 显示更改特定文件的提交。无论文件重命名如何,都会跟随文件。...git stash show stash@{0} 要在保留存储的同时将文件保存在当前存储中,请使用apply。

    1.4K94

    g4e基础篇#4 了解Git存储库

    因为前面我们所描述的git跟踪改动的特殊方式 ,git可以在很小的开销下保留非常复杂的历史记录,同时也由于这种跟踪方式,使得git可以通过改变链接指向的方式随时切换当前目录中任何文件的版本,从而实现了在同一套文件系统上切换分支的功能...与集中式(CVCS)的中心存储库不同,Git的中心存储库与任何开发人员的本地存储库都保留了一致的代码变更,因此开发人员不必连接到中心存储库就可以完成获取历史记录,拉取分支,合并分支等操作;这给予了每一名开发人员离线工作的能力...所以,在企业中使用Git并配合中心存储库可以兼顾团队开发中共享和独立开发的诉求,让开发人员具备很高的自由度的同时又不会丧失代码集中存储所带来的优势。...因此我们需要根据不同的技术栈来配置这个文件以便可以正确的忽略那些不应该提交的文件类型。...小结 至此,我们已经可以获取一个Git存储库了,后面的篇章我们将开始对它进行最基本的代码修改,分支,合并,推送和历史记录查看等基本操作。

    1.1K60

    Git常用命令汇总篇(附使用详细介绍)

    · git rm -r --cached 文件/文件夹名字 用于从Git的版本控制中移除文件或者文件夹,但是它们仍然会保留在你的本地文件系统中。...--no-ff选项表示即使可以进行快进(fast-forward)合并也要创建一个新的commit,这样可以在历史记录中看到这次合并操作。...· git check-ignore -v 文件名 会检查指定的文件是否被.gitignore文件所忽略,并且显示是哪一条忽略规则导致的。...如果这个文件已经被添加到暂存区,那么会将文件回退到暂存区的状态;如果这个文件已经被提交到版本库,那么会将文件回退到最后一次提交的状态。...· git log -n 显示最近n次的提交。n是你想查看的提交数量。 · git log filename 显示指定文件的所有提交历史记录。

    52640

    Git 中文参考(四)

    库>是新子模块的原始存储库的 URL。这可以是绝对 URL,或者(如果它以....rev-list根据是否使用--full-history和/或父改写(通过--parents或--children)来回溯历史记录,包括或排除提交。可以使用以下设置。...示例 1:您的历史记录包含两位作者 Jane 和 Joe 的提交,其名称以多种形式出现在存储库中: Joe Developer Joe R....如果存储库已损坏并且 Git 无法确定是否存在本地修改,则 Git 将出错,除非给出“–broken”,而后缀为“-broken”。...这样,链接到同一存储库的多个工作树中的 rebase 操作不会相互干扰。如果label命令失败,则立即重新安排,并提供有用的消息如何继续。 reset命令将 HEAD,索引和工作树重置为指定的修订版。

    21510

    可能每天都会用到的Git命令速查表

    Git速查表 在不提交更改的情况下存储更改 这是一个简单的示例,只需运行: git stash 然后,要恢复这些存储的更改,并确保你位于同一分支,可以运行: git stash apply 干掉所有未提交的更改...因此,这是同步叉子的方法: 1、添加一个远程仓库 从分支的位置获取上游(主)存储库的地址。...在上一次提交时签出项目的状态 要返回过去查看过去一次给定提交的项目状态,请首先运行git log以查看提交历史记录,然后选择要返回的提交。 然后,复制其哈希并仅运行git checkout 。...要将文件从Git跟踪中删除并保留在系统中,只需执行以下操作: git reset && echo >> .gitignore 提交后添加到提交中 如果要更改提交消息或向其中添加新文件...从Git删除文件并修剪其整个历史记录 如果你曾经将敏感数据推送到远程存储库(例如,在GitHub上),则不仅需要从Git跟踪中删除文件,还需要删除其整个历史记录。

    1.2K30

    IntelliJ IDEA 2022.2.2汉化版免登陆账号「winmac」

    要启用此 Tab行为,请转到首选项/设置| 编辑| 一般| 智能键并选择跳转到关闭括号外/使用Tab键引用- 为重新分配的局部变量和重新分配的参数加下划线IntelliJ IDEA现在默认为重新分配的局部变量和重新分配的参数加下划线...- 在修订版中浏览存储库如果您使用Git进行版本控制,您现在可以根据任何给定的修订来探索存储库的状态。...在“修订”操作中使用新的“ 浏览存储库”(可从VCS日志的上下文菜单或文件历史记录中获取),以在“ 项目工具”窗口中打开所需的存储库状态。...6、组态- 项目配置在IntelliJ IDEA 中,您可以在添加新存储库时排除某些传递依赖项。单击库属性编辑器中的新配置操作链接。...10、文件观察器插件全球文件观察者您现在可以在IDE设置中存储已配置的文件监视器,并在不同的项目中使用它们,因为现在可以像以前一样设置全局文件监视器而不是每个项目一个。

    4.7K30

    【10】进大厂必须掌握的面试题-版本控制面试

    版本控制系统由一个中央共享存储库组成,同事可以在其中对文件或文件集进行更改。然后,您可以提及版本控制的用途。 版本控制可让您: 将文件还原到以前的状态。 将整个项目还原到以前的状态。...这使您可以知道谁在项目中进行了哪些更改。 像Git这样的分布式VCS允许所有团队成员拥有完整的项目历史记录,因此,如果中央服务器出现故障,则可以使用任何队友的本地Git存储库。 Q3。...在Git中,如何还原已经被推送并公开的提交? 这个问题可能有两个答案,因此请确保同时包括这两个原因,因为根据情况,可以使用以下任一选项: 在新的提交中删除或修复错误的文件,然后将其推送到远程存储库。...您如何配置Git存储库以在提交之前运行代码完整性检查工具,并在测试失败后阻止它们? 我建议您先简要介绍一下健全性检查。健全性测试或冒烟测试确定了继续测试是否可行和合理。...在此脚本中,可以运行其他工具,例如linters,并对提交到存储库中的更改执行完整性检查。 Q12。您如何找到在特定提交中已更改的文件的列表?

    2.6K30

    Git 相关问题

    SVN 是集中版本控制工具 2.它属于第3代版本控制工具 2.它属于第2代版本控制工具 3.客户端可以在其本地系统上克隆整个存储库 3.版本历史记录存储在服务器端存储库中 4.即使离线也可以提交 4.只允许在线提交...每个开发人员都可以“克隆”我在图中用“Local repository”标注的存储库的副本,并且在他的硬盘驱动器上具有项目的完整历史记录,因此当服务器中断时,你需要的所有恢复数据都在你队友的本地 Git...,你回答时也要保包含这两个答案,因为根据具体情况可以使用以下选项: 删除或修复新提交中的错误文件,并将其推送到远程存储库。...git pull 命令从中央存储库中提取特定分支的新更改或提交,并更新本地存储库中的目标分支。 git fetch 也用于相同的目的,但它的工作方式略有不同。...你可以在这个脚本中运行其他工具,例如 linters,并对提交到存储库中的更改执行完整性检查。 最后举个例子,你可以参考下面的脚本: 1#!

    2.1K10

    【10】进大厂必须掌握的面试题-版本控制面试

    版本控制系统由一个中央共享存储库组成,同事可以在其中对文件或文件集进行更改。然后,您可以提及版本控制的用途。 版本控制可让您: 将文件还原到以前的状态。 将整个项目还原到以前的状态。...像Git这样的分布式VCS允许所有团队成员拥有完整的项目历史记录,因此,如果中央服务器出现故障,则可以使用任何队友的本地Git存储库。 Q3。在团队中分支是怎么用的。...这个问题可能有两个答案,因此请确保同时包括这两个原因,因为根据情况,可以使用以下任一选项: 在新的提交中删除或修复错误的文件,然后将其推送到远程存储库。这是修复错误的最自然的方法。...您如何配置Git存储库以在提交之前运行代码完整性检查工具,并在测试失败后阻止它们? 我建议您先简要介绍一下健全性检查。健全性测试或冒烟测试确定了继续测试是否可行和合理。...在此脚本中,可以运行其他工具,例如linters,并对提交到存储库中的更改执行完整性检查。 Q12。您如何找到在特定提交中已更改的文件的列表?

    2.6K20

    从9G到0.3G,腾讯会议对他们的git库做了什么?

    2.3 代码库锁定 禁止代码库写操作,一般公司的代码管理平台可以提供这个功能,Git 项目的 owner 有权限。...lfs 文件版本 git fetch --all git lfs fetch --all 4.2 使用 git filter-branch 截断历史记录 这次瘦身只保留最近半年的历史记录...特殊分支处理 说明:以上历史记录裁剪并删除历史提交记录执行完后,对于基于截断提交节点前的提交节点创建出来的分支或者其子分支会出现文件被删除或者整个分支被删除的情况。...所以要提前弄清楚有没有在截断节点之前早就创建出来一直在用的分支,如果有就得特殊处理上面的2和3步骤了: 第2步中截断历史记录的时候,要类似分析 master 分支那样分析其它需要保留的特殊分支,找出各自的截断节点的父提交...05 新代码库验证 git clone https://example.com/test_backup.git 使用 git lfs pull 先拉取主干分支所有的历史文件进行测试,保留瘦身的本地仓库

    98951

    可以说是一门奶奶级Git入门教程了

    类似,选择后 Git 会显示这些文件的当前内容与本地版本库中的差异,然后您可以自己决定是否添加这些修改到暂存区,在命令行 Stage deletion [y,n,q,a,d,/,?]?...为当前修改或删除的文件创建一个自定义的栈并返回一个ID,此时并未真正存储到栈里 git stash store xxxxxx 将 create 方法里返回的ID放到 store 后面,此时在栈里真正创建了一个记录...操作历史 git log “显示提交历史记录 git log -p 显示带提交差异对比的历史记录 git log demo.html 显示 demo.html 文件的历史记录 git log --since...="2 weeks ago" 显示2周前开始到现在的历史记录,其它时间可以类推 git log --before="2 weeks ago" 显示截止到2周前的历史记录,其它时间可以类推 git log...bisect reset 查到有问题的提交ID后回到原分支 更多操作 git submodule “通过 Git 子模块可以跟踪外部版本库,它允许在某一版本库中再存储另一版本库,并且能够保持2个版本库完全独立

    1.8K40

    Git使用经验总结6-删除远端历史记录

    这个时候已经有了很多新的历史提交,无法再回退了。 有时候会拿Git仓库存储代码文件以外的内容,比如美术资源、依赖库等等。这时除了少数提交大部分历史提交是没意义的,还很占仓库空间。...例如先检查一下所有的历史提交: git rev-list --count HEAD 如果得到的数值是500,那么将n设置成499就可以看到所有的历史记录。...保存并退出编辑器,Git会开始重写历史,删除指定的提交。有时候你想删除的历史提交太多,一个一个改成drop很麻烦,可以使用NotePad3这样的文本工具,通过列选取功能来批量修改。...例如检测到空提交,会提示并中止变基过程,可以进行跳过: git rebase --skip 还可能会遇到冲突的问题,让你解决冲突。...因此这个方法对有的读者可能不太适用,可能合并历史提交、或者只保留最新提交的版本更合理一点。

    11510

    BFG Repo-Cleaner - 快速清除Git提交历史中的特定文件

    BFG是git-filter-branch之外的一种更简单、更快的方法,可以清除Git存储库历史中的不良数据: 删除 大文件 删除 密码、凭证 和其他 私人数据 git-filter-branch命令非常强大...这意味着您的普通文件将不可见,但它是存储库Git数据库的完整副本,此时您应该备份它,以确保不会丢失任何东西。...无论它们在您的存储库中的任何地方: $ bfg --replace-text passwords.txt my-repo.git 删除Git中所有名为'.git'的文件夹或文件—保留的文件名。...BFG的这一假设保护了您的工作,并让您安心地知道BFG只是仅仅更改您的仓库历史记录,而不是干预项目的当前文件。...如果某个坏的文件(比如10MB的文件,当您指定--strip-blobs-bigger-than 5M)在受保护的提交中,那么它不会被删除—它将保存在您的存储库中,即使BFG从以前的提交中删除了它。

    3K40

    保姆级Git入门教程,万字详解

    类似,选择后 Git 会显示这些文件的当前内容与本地版本库中的差异,然后您可以自己决定是否添加这些修改到暂存区,在命令行 Stage deletion [y,n,q,a,d,/,?]?...为当前修改或删除的文件创建一个自定义的栈并返回一个ID,此时并未真正存储到栈里 git stash store xxxxxx 将 create 方法里返回的ID放到 store 后面,此时在栈里真正创建了一个记录...操作历史 git log “显示提交历史记录 git log -p 显示带提交差异对比的历史记录 git log demo.html 显示 demo.html 文件的历史记录 git log --since...="2 weeks ago" 显示2周前开始到现在的历史记录,其它时间可以类推 git log --before="2 weeks ago" 显示截止到2周前的历史记录,其它时间可以类推 git log...bisect reset 查到有问题的提交ID后回到原分支 更多操作 git submodule “通过 Git 子模块可以跟踪外部版本库,它允许在某一版本库中再存储另一版本库,并且能够保持2个版本库完全独立

    6.8K32

    Git 从入门到放不下

    分支(Branch) 分支是为了将修改记录的整个流程分开存储,让分开的分支不受其它分支的影响,所以在同一个数据库里可以同时进行多个不同的修改 ?...update 类似,选择后 Git 会显示这些文件的当前内容与本地版本库中的差异,然后您可以自己决定是否添加这些修改到暂存区,在命令行 Stage deletion [y,n,q,a,d,/,?]?...为当前修改或删除的文件创建一个自定义的栈并返回一个ID,此时并未真正存储到栈里 git stash store xxxxxx 将 create 方法里返回的ID放到 store 后面,此时在栈里真正创建了一个记录...操作历史 git log 显示提交历史记录 git log -p 显示带提交差异对比的历史记录 git log demo.html 显示 demo.html 文件的历史记录 git log --since...reset 查到有问题的提交ID后回到原分支 更多操作 git submodule 通过 Git 子模块可以跟踪外部版本库,它允许在某一版本库中再存储另一版本库,并且能够保持2个版本库完全独立 git

    2.2K31

    Git 从入坑到放不下

    分支(Branch) 分支是为了将修改记录的整个流程分开存储,让分开的分支不受其它分支的影响,所以在同一个数据库里可以同时进行多个不同的修改 ?...update 类似,选择后 Git 会显示这些文件的当前内容与本地版本库中的差异,然后您可以自己决定是否添加这些修改到暂存区,在命令行 Stage deletion [y,n,q,a,d,/,?]?...为当前修改或删除的文件创建一个自定义的栈并返回一个ID,此时并未真正存储到栈里 git stash store xxxxxx 将 create 方法里返回的ID放到 store 后面,此时在栈里真正创建了一个记录...操作历史 git log 显示提交历史记录 git log -p 显示带提交差异对比的历史记录 git log demo.html 显示 demo.html 文件的历史记录 git log --since...bisect reset 查到有问题的提交ID后回到原分支 更多操作 git submodule 通过 Git 子模块可以跟踪外部版本库,它允许在某一版本库中再存储另一版本库,并且能够保持2个版本库完全独立

    1.4K30
    领券