在开发的时候,为了测试数据,总会连接一些数据库、服务器、API之类,提交的时候就会不小心泄漏我们的SSH key、密码或者token之类的东西,所以有必要掌握 Git删除隐私。
删除隐私
错误的做法:如果发现不小心上传了隐私信息,修改或删除相应的文件
原因:git是可以查看历史提交的,所以只需要查看历史提交,相应的隐私信息还是会暴露
删厍?当我没说
git filter-branch
所有的历史记录中删除某个文件/文件夹 yourfilepath
就是需要删除的那个文件/文件夹
$ git filter-branch --force --index-filter 'git rm -r --cached --ignore-unmatch yourfilepath' --prune-empty --tag-name-filter cat -- --all
$ git push origin master --force
此时再看看 git log
应该是没有该文件的信息了。
请参考:https://docs.github.com/en/github/authenticating-to-github/removing-sensitive-data-from-a-repository
同步fork代码
-
clone fork的分支到本地
$ git clone git@github.com:*/flutter.git
-
增加源分支(被自己fork的项目)地址到自己git项目远程分支列表中,将原来的仓库命名为upstream
$ git remote add upstream git@github.com:flutter/flutter.git
-
核实远程分支列表(optional)
$ git remote -v origin git@github.com:*/flutter.git (fetch) origin git@github.com:*/flutter.git (push) upstream git@github.com:flutter/flutter.git (fetch) upstream git@github.com:flutter/flutter.git (push) ## 核实后,发现不如意,想删除,可以用 git remote remove name ## name 为远程分支的命名,如上面例子,可以删除 upstream ## git remote remove upstream ## 或者直接删除之前fork的原始分支 origin ## git remote remove origin (直接删除了原始分支后,再fork, ## 也能达到更新了最新代码的需求,后面的步骤就不用了。)
-
fetch源分支的新版本到本地
$ git fetch upstream
-
合并两个版本的代码
$ git merge upstream/master
-
将合并后的代码push到github上自己的fork中去
$ git push origin master ## 如果要强制: ## git push origin --force
pull request
提交更改
$ git add 'filename'
$ git commit -m 'text'
$ git push origin master
发起pull request
## 需要安装 Github CLI
$ gh pr create
Creating pull request for master into master in Twor/dotfile
! warning: could not compute title or body defaults: could not find any commits between master and master
? Title zh_CN ## 填写你提交的内容
? Body <Received> ## 说明
? What's next? [Use arrows to move, type to filter]
> Submit
Continue in browser
Add metadata
Cancel
// .....
merge
查看pr的状态
$ gh pr status
Relevant pull requests in Twor/dotfile
Current branch
There is no pull request associated with [master]
Created by you
#1 README.md [Catclerk:master]
Requesting a code review from you
You have no pull requests to review
$ gh pr merge <ID> -m
Notice: authentication required
Press Enter to open github.com in your browser...
Authentication complete. Press Enter to continue...
✔ Merged pull request #1 (README.md)
✔ Deleted branch master
小坑: Github CLI 还不支持多用户,当你要切换用户时,去删除配置文件 .config/gh/hosts.yml
里面的内容 。
还可以查看issue等等其他操作
- gh issue list
- gh issue view //但是这会在浏览器打开