Link Search Menu Expand Document

安装 Git & 更新 Git

MacOS

推荐使用 Homebrew 管理,安装 Git:brew install git,更新当前 Git 版本:brew update && brew upgrade

如果升级失败请尝试改变 Git 的指向:

  1. 查看指向 which git 默认为 :/usr/bin/git
  2. 查看版本 git --version
  3. 更改指向 brew link git --overwrite
    1. 更改后再次查看指向 which git 修改后为:/usr/local/bin/git
    2. 如果没有改变重启终端再查看一下指向 which git
    3. 查看版本 git --version

Windows

推荐通过官网下载新版,Git 2.16.1 之前的版本请通过官网重新安装,之后的版本更新当前 Git 版本:git update-git-for-windows

参考资料

Git GUI Clients Git 可视化操作客户端

重置仓库清理仓库记录(note:体验整个操作过程只是把本地的记录清理了,服务端也清理了,但是还是占用了空间,标识这波操作没有完全成功!!!)

  1. 安装 git filter-repo,通过 Homebrew:brew install git-filter-repo,通过 pip pip3 install git-filter-repo
  2. 使用--bare和克隆存储库的新副本--mirror
    1. git clone --bare --mirror https://your/project.git
  3. 后面操作前请先进入刚刚克隆的仓库目录
    1. 进入刚刚克隆的仓库:cd project.git project 替换为你自己的仓库名称
    2. 我从一开始执行命令就是在原仓库本地目录执行的,如果要强制该当前仓库可以在后面目录中增加--force。使用强制前请确保仓库有做备份,避免犯下无法挽回的错误。清空部分文件后 git config 有些内容也被清掉了(不建议像我这样直接在原仓库操作)。所以如果你在原仓库修改,提交前或提示无法提交时检测下 gitconfig 文件的完整性。
  4. 使用git filter-repo,从存储库的历史记录中清除所有文件。
    1. 请参阅 git filter-repo文档获得更多操作方法,根据个人需求,常用方法如下:
      1. 清除大文件:git filter-repo --strip-blobs-bigger-than 10M 将 10M 修改为你想清楚超过该容量大小的文件
      2. 删除特定路径大文件:git filter-repo --path path/to/big/file.m4v --invert-paths
      3. 删除特定的文件(一个或者多个):git filter-repo --path README.md --path site/index.html
      4. 删除任何目录下的 .DS_Store 文件:git filter-repo --invert-paths --path '.DS_Store' --use-base-name 或者 git filter-repo --invert-paths --path-glob '*/.DS_Store' --path '.DS_Store'
  5. 强制推送覆盖所有分支:git push origin –force ‘refs/heads/*’
    1. 如果是受保护分支可能会操作失败,如果要执行先关闭分支保护功能, Gitlab 关闭方法:设置”➔“存储库”➔“受保护的分支”。
    2. gitlab 在设置中清理了以后依旧存储大小还是没有缩小,
      1. “设置”>“存储库”。
      2. 上载对象列表。一个commit-map
        1. 文件由 git filter-repo 创建,位于在 .git/filter-repo 目录中。

参考资料

Mac Git 生成 SSH key

配置账户

accountName 替换成你的用户名。 youer@mail.com 替换成你你的邮箱地址。

git config --global user.name "accountName"     // 用户名,建议拼音或英文
git config --global user.email "youer@mail.com"   // 邮箱地址

生成 key

passphrase 可以为空。 youer@mail.com 替换成你你的邮箱地址。

Mac 生成的 ssh key 会存放在 /Users/yourID/.ssh/id_rsa.pub ,yourID 替换成你用户目录名称。

ssh-keygen -t rsa -C "youer@mail.com"

将 pub 文件中内容添加到 gitlab、github、gitee SSH 配置中

添加完后,测一下是否正常,以下只做 gitlab 和 github 的演示,具体的 ssh 测试方法可以通过你仓库的 ssh 链接提取。

ssh -T git@gitlab.com
ssh -T git@gitlab.com

参考

仓库克隆和迁移

仓库迁移

将 Github 上想要导入的项目完整克隆到本地。 本地执行

git clone https://github.com/antirez/redis.git --bare

将克隆下来的仓库推送到开发者平台

克隆完成后,将仓库推送到 开发者平台上。

使用仓库页面提供的 URL。推送所有的分支和对象

cd redis.git
git push https://git.dev.tencent.com/jiong/redis.git --all

完成后,再执行推送所有的标签。

git push https://git.dev.tencent.com/jiong/redis.git --tags

一个本地仓库同时push到多个远程仓库

参考 一个项目push到多个远程Git仓库 https://segmentfault.com/a/1190000011294144

方法一:直接修改[remote “origin”] 新增url 终端命令git push 手动输入每个git仓库账号密码

Github操作,不同仓库账号密码保持一致,因为只提示一次账号密码输入,如果几个git仓库账号密码不同就会无限提示输入账号密码

参考资料

重命名本地分支 master

本地给分支重命名 The default branch has been renamed!

比如将 main 重命名为 master main is now named master

在本地运行一下命令,若你的原分支名不是 main 请手动替换对应的 If you have a local clone, you can update it by running:

git branch -m main master
git fetch origin
git branch -u origin/master master
git remote set-head origin -a

方法二:重命名本地分支名称和远程分支名称

git branch -m oldBranch newBranch
git push --delete origin oldBranch
git push origin newBranch
git branch --set-upstream-to origin/newBranch