清除远程仓库已经清除的分支
git remote prune origin
git push --force origin dev 强制推送当前本地的代码到dev分支,会删掉以前的推送记录
Git分支管理
Git 三大特色,分支,暂存区,工作流。工作流不涉及任何命令,通俗一点的称呼就是分支策略。
何谓分支策略 Git的特色之一就是可以灵活的建立分支,因为有分支的存在,才构成了多工作流的特色。事实的确如此,因为项目开发中,多人协作,分支很多,虽然各自在分支上互不干扰,但是我们总归需要把分支合并到一起,而且真实项目中涉及到很多问题,例如版本迭代,版本发布,Bug 修复等,为了更好的管理代码,需要制定一个工作流程,这就是通常意义上的Workflow,也就是我们常说的分支管理策略。
热度最高的分支管理策略 目前使用度最高的工作流前三名分别是以下三种(排名不分先后):
Git Flow nvie.com/posts/a-suc…
GitHub Flow scottchacon.com/2011/08/31/…
GitLab Flow docs.gitlab.com/ee/topics/g…
git 仓库清理
回收已经没有引用的旧提交,这可以减小本地仓库的大小
git reflog expire --expire=now --all && git gc --prune=now --aggressive
如何完整迁移git仓库到另一个远程地址
项目中遇到git仓库迁移,很常见。如何把一个项目中所有的分支,tag等迁移到另一个仓库地址,需要执行一个特别的克隆命令,然后镜像push到新的仓库地址。具体步骤如下:
1.打开命令行工具
2.以bare的方式克隆老的仓库
git clone --bare https://github.com/exampleuser/old-repository.git
3.镜像push到新的仓库地址
cd old-repository.git
git push --mirror https://github.com/exampleuser/new-repository.git
4.在电脑中删掉老得仓库,把新的仓库重新拉下来
cd ..
rm -rf old-repository.git
清理git提交记录
- [下载 BFG工具] (rtyley.github.io/bfg-repo-cl…)
git clone --mirror https://github.com/example.git
bfg --delete-files [文件名称] example.git
bfg --delete-folders [文件夹名称] example.git
在命令行下加入--no-blob-protection命令,可以解除保护。我使用的命令如下
bfg --delete-files libBaiduSpeechSDK.a example.git --no-blob-protection
bfg --delete-folders TTS example.git --no-blob-protection
清理不需要的数据
cd example.git
git reflog expire --expire=now --all && git gc --prune=now --aggressive
git push