Git 技巧

合并两个仓库

(master)$ git remote add repoB <url-to-repo-B> // 添加远程仓库B
(master)$ git fetch repoB // 将远程仓库B下载到本地
(master)$ git merge repoB/master --allow-unrelated-histories //合并仓库B的master到master

合并多个提交记录

git rebase -i HEAD~3 // 向前合并3个记录
git rebase -i 932bd0 // 向前合并到记录932bd0
// 在vim下修改 s 或者 p, 保存
git push origin branch --foece //强制覆盖提交

删除Git中大文件

// 显示5个最大的文件
git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -8 | awk '{print$1}')"

// 删除指定文件或目录
git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch localhost.log DEMO/' --prune-empty --tag-name-filter cat -- --all

// 清理和回收空间
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now

// 强制提交
git push --force

克隆大项目

// 先clone 1层,然后再获取
git clone --depth=1 url-to-git
git fetch --unshallow

results matching ""

    No results matching ""