去除GIT某个时间之前的提交日志

这篇具有很好参考价值的文章主要介绍了去除GIT某个时间之前的提交日志。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

有时git提交了太多有些较早之前的提交日志,不想在git log看到,想把他删除掉。

方法

大概思路是通过 git clone --depth 来克隆到指定提交的代码,此时再早之前的日志是没有的

然后提交到新仓库文章来源地址https://www.toymoban.com/news/detail-802078.html

#!/bin/bash
ori_git="git@your.git.path/ori-prj.git"   #源仓库
ori_branch="master" 
ori_path="ori-prj"


dest_git="git@your.git.path/dest-prj.git" #需要提交到变更后的仓库
dest_branch="master"
dest_path="dest-prj"
previous_commit="41059bbcc349de4faccf484326a94d3c816cdd05" #从哪个id开始拉,不包含当前id

if [ -d "$ori_path" ]; then
    echo "$ori_path exist"
else
   echo "git clone $ori_git --branch=$ori_branch $dest_path"
   git clone $ori_git --branch=$ori_branch $ori_path
fi

cd $ori_path
git pull
#判断分支是否存在, 没有的话拉一下
if test -z "$(git branch |grep $ori_branch)"; then
  git checkout remotes/origin/$ori_branch -b $ori_branch
fi
git checkout $ori_branch

# 获取id对应的深度
current_commit=$(git rev-parse HEAD)
commit_count=$(git log --oneline $previous_commit..$current_commit | wc -l)

echo $commit_count

cd ..
#只克隆到指定id的提交记录
rm -rf $dest_path
git clone $ori_git --depth=$commit_count  --branch=$ori_branch $dest_path
cd $dest_path
git filter-branch -- --all # 要执行下这命令,不然推不上去
git remote rename origin old-origin
git remote add origin $dest_git
git push origin $ori_branch:$dest_branch --force
echo $ori_branch:$dest_branch
cd ..

到了这里,关于去除GIT某个时间之前的提交日志的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git合并某个分支上的某个提交

    1. 首先,确保你当前所在的分支是你要合并分支的父分支。你可以使用以下命令切换到父分支: 2. 确保你要合并的分支是可用的。你可以使用以下命令查看所有可用的分支: 这将显示所有本地和远程分支的列表。确保你要合并的分支名称包含在列表中。 3. 使用 `git log` 命令

    2024年02月04日
    浏览(39)
  • git配置忽略某个文件提交

    git 配置忽略文件    在使用使用git对代码进行管理的时候,总会有一些文件不需要提交到代码库中,比如.calss 文件、临时文件、配置文件等(如图 .ieda 和gittest.iml)。我们就可以通过给git配置,让其在每次给代码库提交代码时忽略这些文件。 1、在根目录下创建 *.ignore 的文

    2024年02月11日
    浏览(32)
  • git回退到某个提交

    git回退到某个commit git reset --hard HEAD^  回退到上个版本 git reset --hard HEAD~3  回退到前3次提交之前 git reset --hard commit_id  退到/进到 指定的commit(使用git log查看历史提交信息) git push origin HEAD -- force  强退至远程 git回退到某个commit 推送远程 1.先查询对应的提交历史,使用如下

    2024年02月06日
    浏览(62)
  • 【GIT教程】清除git仓库中某个文件的提交记录

    【Git教程】如何清除git仓库的所有提交记录,成为一个新的干净仓库 最近把一些项目传到Github上面进行开源,配置文件中配置了用户名和密码等一些比较敏感的信息,为了避免暴露这些信息,需要将相关的提交记录给清楚掉。 以 application.yml 来举例说明 第一步:在本地将该

    2024年02月13日
    浏览(31)
  • git 提交代码某个文件夹一直提交不上去

    问题描述: 这个文件夹是直接拷贝过去的,在提交到远程仓库是出现了问题。 问题分析: 直接拷贝过去的文件夹里面有个 .git 的文件,所以在执行 git status 的时候出现 modified: test (modified content, untracked content) 提示,这个提示存在的原因是 xxx目录是一个空目录,且里面有一个

    2024年03月15日
    浏览(56)
  • Git如何回退到某个提交

    在Git中回退到某个提交可以通过几种不同的方法实现,以下是一些常见的方法: 使用 git reset 命令 : git reset 命令可以将HEAD和当前工作分支重置到指定的提交。例如: 这里, commit-hash 是你想要回退到的提交的哈希值。 git reset 有三种模式: --soft , --mixed 和 --hard ,每种模式

    2024年02月05日
    浏览(33)
  • git(重要功能): 忽略某个文件的提交

    根目录创建.gitignore,内容如下 http://settings/ *.iml 这种方式对已经提交到git上面的文件是无法奏效的,例如在.gitignore这个文件存在前, 可以执行以下命令

    2024年02月10日
    浏览(34)
  • Git 推送(提交)时如何忽略某个文件或目录?

    1、在工作目录下新建 .gitignore 文件 阿里云效 DevOps 实测! 2、配置忽略规则(支持正则) .gitignore 只能忽略那些原来没有被 track 的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。解决方法就是先把本地缓存删除(改变成未 track 状态),然后再提交。

    2024年02月11日
    浏览(37)
  • git查看某个提交(commit)修改了哪些文件

    要查看某个提交(commit)修改了哪些文件,可以使用 Git 的 diff 命令结合 -p (逐行)或 -U (差异)选项。 以下是使用 git diff 命令查看提交修改文件的基本语法: 其中, commit_hash 是要查看修改历史的提交哈希值, file_pattern 是要检查的文件模式。可以使用通配符匹配多个文件

    2024年02月04日
    浏览(43)
  • idea git只查看某个人提交的代码记录

    git插件只查看某个人提交的代码记录 右键显示弹框,选择Select in Git Log 展示的页面如下: 按住ctrl+enter完成查询

    2024年03月26日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包