🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # Permission denied (publickey) ~~~bash # 更改`.ssh`文件夹权限 $ chmod 700 ~/.ssh # 更改`.ssh/authorized_keys`文件权限 $ chmod 600 ~/.ssh/* ~~~ # `.gitkeep` 就个人而言,一般需要`.gitkeep` 地方,是希望完成以下功能: * 使 git 忽略一个文件夹下的所有文件,并保留该文件夹 ~~~sh # .gitignore # ignore all files in lib/ lib/* # except for .gitkeep !.gitkeep # ignore TODO file in root directory,not subdir/TODO /TODO ~~~ 当`.gitignore` 采用上面的写法时,git 会忽略 `lib` 文件夹下除了`.gitkeep` 外的所有文件。 # 下载 repo中 单个文件夹 ## 借助 subversion 点击进入我们要下载的 dict,url 地址为:https://github.com/starnightcyber/findSubDomains/**tree/master**/dict 将**tree/master**用**trunk**替换,即https://github.com/starnightcyber/findSubDomains/**trunk**/dict 使用命令如下: ~~~ # svn checkout https://github.com/starnightcyber/findSubDomains/trunk/dict A dict/dns_servers.txt A dict/next_sub.txt A dict/next_sub_full.txt A dict/subnames.txt A dict/subnames_full.txt Checked out revision 17. ~~~ 这样,我们就下载好了我们只需要使用的字典 dict,这种方式尤其是在项目很大的时候,而网速有不给力的情况下,特别方便。 ## Sparse Checkout模式 Git1.7.0以后加入了 Sparse Checkout 模式,这使得 Check Out 指定文件或者文件夹成为可能。 具体实现如下: ```shell $mkdir project\_folder $cd project\_folder $git init $git remote add -f origin ``` 上面的代码会帮助你创建一个空的本地仓库,同时将远程Git Server URL加入到Git Config文件中。 接下来,我们在Config中允许使用Sparse Checkout模式: ``` $git config core.sparsecheckout true ``` 接下来你需要告诉Git哪些文件或者文件夹是你真正想Check Out的,你可以将它们作为一个列表保存在 .git/info/sparse-checkout 文件中。 例如: ``` $echo “libs” >> .git/info/sparse-checkout $echo “apps/register.go” >> .git/info/sparse-checkout $echo “resource/css” >> .git/info/sparse-checkout ``` 最后,你只要以正常方式从你想要的分支中将你的项目拉下来就可以了: ``` $git pull origin master ``` 具体可参考 Git 的[Sparse checkout文档](http://schacon.github.io/git/git-read-tree.html#_sparse_checkout) [如何从 GitHub 上下载单个文件夹?](https://www.zhihu.com/question/25369412) # 不小心把密码上传到 GitHub 了 ## 使用专用工具 [BFG Repo-Cleaner](https://rtyley.github.io/bfg-repo-cleaner/) 就有个兄弟写了个工具来一键解决咱们的问题。主页在这,估计大家都能看懂吧?我再简述一下,有没有办法直接把敏感信息替换成其他内容啊?有啊! 假如我的仓库名字为`python_test_code`,先创建一个名为`password.txt`的文件,在其中一行一个输入你的敏感信息,比如说密码啦,邮箱啦,等等啦,它会进行搜索替换所有提交历史中的该信息,最后运行这么一句 ((如果要清除的内容带中文,记得编码为 UTF-8 哟): ```java java -jar bfg.jar --replace-text password.txt python_test_code ``` 最后在 `force push`: ``` git push origin --force –all ``` # Git修改已经提交的用户名信息 https://www.jianshu.com/p/93bb4d049955 [git 修改已提交的某一次的邮箱和用户信息](https://segmentfault.com/q/1010000006999861)