删除Github远程提交记录

最近我在快速提交代码到Github远程仓库的时候,发现提交了一些非必须文件,如缓存文件,而且这些文件比较大,影响了CI工具拉取github仓库的状态(CI工具网速不够快),导致无法将最新的提交触发CI。

这里快速介绍一种快速的方法:

第一步:快速找到你要回滚的git commit id

git log

第二步:将本地变更回滚(切记使用–soft,这样会保存你工作区的变更,只是移除了暂存区的代码,不要使用–hard)

git reset --soft commit-id-xxxxxx

第三步:缓存你工作区的变更

git stash

第四步:

git push --force --no-verify

这时候github远程仓库,已经回滚到你reset的commitId了。切记如果这时候有别人最新的提交也是会回滚的。

第五步:

git stash pop

这样你又可以修改本地的修改,之后再次提交就好了。

Git协同工作流的选择

  • 与传统的代码版本管理工具相比,Git 有很多的优势,因而越来越成为程序员喜欢的版本管理工具。我觉得,Git 这个代码版本管理工具最大的优势有以下几个。
  • Git 是一个分布式的版本管理工具,而且可以是单机版的,所以,你在没有网络的时候同样可以提交(commit)代码。
  • Git 从一个分支向另一个分支合并代码的时候,会把要合并的分支上的所有提交一个一个应用到被合并的分支上,合并后也能看得到整个代码的变更记录。而其他的版本管理工具则不能。
  • Git 切换分支的时候通常很快。不像其他版本管理器,每个分支一份拷贝。
  • Git 有很多非常有用的命令,让你可以很方便地工作。
[阅读全文]

Git常用指令整理

整理的一些常用的Git指令

创建仓库

echo "# comments" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:your_username/your_project.git
git push -u origin master

若仓库存在直接push 

git remote add origin git@github.com:your_username/your_project.git
git push -u origin master
[阅读全文]

Git 生成多个 SSH Key

当有多个git账号的时候,比如一个github,用于自己进行一些开发活动,再来一个gitlab,一般是公司内部的git。这两者你的邮箱如果不同的话,就会涉及到一个问题,生成第二个git的key的时候会覆盖第一个的key,导致必然有一个用不了。

[阅读全文]