git迁移远程仓库同时保留所有提交记录和所有分支

问题 假设我有A、B两个github账号,如果我想将A的某个仓库转移到B,同时保留提交记录和所有分支,如果不使用官方的git clone,那么如何实现呢? 解决办法: 这里假设你的remote都是origin,同时已经在B上新建了一个同名的空的仓库: git clone –mirror <url_of_old_repo> cd <name_of_old_repo> 此时目录结构如下: git remote rm origin git remote add origin <url_of_new_repo> git push origin –mirror 总结: 网上有使用git checkout,先在本地把所有远程分支拉下来,然后再git push –all…

git如何删除已经push到远程的提交

前提 这里假设remote都是origin ,分支都为master。 注意:如果想单独删除git某个已经push的提交,那就只能删除最近的那个commit,而无法删除倒数第二个commit,而保留倒数第一个提交,如下 假设有A->B->C 三个提交,我们没法只删除B,而保留C,虽然可以通过rebase的方式实现,但是rebase过程中一堆冲突,对于大点的项目,很难实际操作。 我们只能删除B以及它之后的所有commit,即把B、C都删除,结果为 A。 方法一:git reset 先删除本地的: git reset –hard <commit hash> 然后push到remote: git push -f 但是为了安全,建议使用: git push –force-with-lease 方法二:git rebase 假设我们有3次提交: $ git log…