解决Git commit次数过多.git文件过大的问题

一:常规办法
1.删除无用的分支
$ git branch -d <branch_name>
2.删除无用的tag
 $ git tag -d <tag_name>
3.清理本地版本库
 $ git gc --prune=now

二:高级办法
注意高级办法会导致push冲突,需要强制提交,其他人pull也会遇到冲突,建议重新克隆。
!!!注意这些操作都很危险,建议找个示例库进行测试,确保自己完全掌握之后再实际操作。

1.完全重建版本库
$ rm -rf .git
$ git init
$ git add .
$ git cm "first commit"
$ git remote add origin <your_github_repo_url>
$ git push -f -u origin master

2.有选择性的合并历史提交
$ git rebase -i <first_commit>

会进入一个如下所示的文件
  1 pick ba07c7d add bootstrap theme and format import
  2 pick 7d905b8 add newline at file last line
  3 pick 037313c fn up_first_char rename to caps
  4 pick 34e647e add fn of && use for index.jsp
  5 pick 0175f03 rename common include
  6 pick 7f3f665 update group name && update config

将想合并的提交的pick改成s,如
  1 pick ba07c7d add bootstrap theme and format import
  2 pick 7d905b8 add newline at file last line
  3 pick 037313c fn up_first_char rename to caps
  4 s 34e647e add fn of && use for index.jsp
  5 pick 0175f03 rename common include
  6 pick 7f3f665 update group name && update config

这样第四个提交就会合并进入第三个提交。
等合并完提交之后再运行
$ git push -f
$ git gc --prune=now


ps:
只是为了 clone 小的话,用 --depth=1 只获取最新的 commit 即可
可以在 .gitignore 添加不需要的超大文件,然后重新建版本库

转载于:https://my.oschina.net/jack088/blog/1329752

多人开发分支流程通常在Git中是这样的: 1. **初始化仓库** (git init): 如果你在新的项目开始时创建一个新的本地仓库,可以使用`git init`命令初始化一个全新的Git仓库。 2. **克隆仓库** (git clone): 当团队成员想要参与到项目中,他们可以从远程仓库(如GitHub、GitLab等)使用`git clone [repository-url]`来克隆整个项目到自己的本地。 3. **切换分支** (git checkout -b): 每位开发者可以在本地创建并切换到自己的分支,比如`git checkout -b feature-branch` 创建并切换到新功能分支。 4. **工作与提交** (git add, git commit): 开发者在修改完代码后,先使用`git add [file-name]`添加改动,然后用`git commit -m "commit message"`提交更改,记下简短的描述说明做了什么更改。 5. **推送至远程分支** (git push origin branch-name): 将本地分支的更新推送到远端共享,让其他团队成员看到。 6. **合并分支** (git merge or rebase): 当某个分支的工作完成并通过审查,主分支或需要该变更的其他分支会从`origin`拉取更新,再用`git merge feature-branch` 或 `git rebase feature-branch` 合并分支。 7. **冲突解决** (git mergetool): 如果有冲突发生,需要手动解决后再提交。 8. **保持同步** (git pull): 定期在本地使用`git pull`获取远程分支的最新变化,避免信息孤岛。 9. **查看状态** (git status): 使用`git status`了解当前目录的状态,包括未跟踪文件、暂存区的改动和已提交的更改。 在协作过程中,频繁地交流和协同处理冲突是很关键的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值