AS的Demo上传到GitHub 作者: LYC 时间: 2021-04-02 分类: 工具类知识学习 # 如题 [TOC] 终于有点时间阐述我想干什么了,想法如下: 核心是将本地写的一些Demo上传到Github或者其他Git仓库进行存储和分享,实现的关键点在于我想**把这些Demo都保存在同一个Git仓库中**,目的是方便查看和管理。 目前的进度和遇到的问题如下: 1. 在本地使用创建Git仓库成功,难度简单 2. 在Github端创建仓库成功,难度狗都会 3. 将本地的项目上传到GitHub,成功,有一定难度,难点见问题1&2 4. 将多个Demo项目上传到同一个仓库,未完成 ------ 问题: 1. 本地登录Github404,解决办法:使用Token登录,Github上生成Token的位置在Settings-> Developer settings -> Personal access tokens,创建好后将生成的Token复制到AS相应位置即可。 2. AS中Share Project on GitHub失败,解决办法:首先要在本地创建Git仓库才能分享到Github,不然必然失败。另外目前看样子是一台电脑或者一个软件只能使用一次Token,我并没有办法让设置好的Token重新出现。 3. 我还遇到了一个端口被占用的问题,解决办法是重启电脑,我甚至不知道这个问题的原因,开始使用都是正常的。 4. 有个小问题是我在Github上更新的时候commit message是有大致描述和详细描述两个message的,但是我记得git commit只有一个啊,这是怎么回事我还需要稍微研究一下。 ## 配置gitignore ``` git # Built application files *.apk *.aar *.ap_ *.aab # Files for the ART/Dalvik VM *.dex # Java class files *.class # Generated files bin/ gen/ out/ # Uncomment the following line in case you need and you don't have the release build type files in your app # release/ # Gradle files .gradle/ build/ # Local configuration file (sdk path, etc) local.properties # Proguard folder generated by Eclipse proguard/ # Log Files *.log # Android Studio Navigation editor temp files .navigation/ # Android Studio captures folder captures/ .idea # IntelliJ *.iml #.idea/workspace.xml #.idea/tasks.xml #.idea/gradle.xml #.idea/assetWizardSettings.xml #.idea/dictionaries #.idea/libraries ## Android Studio 3 in .gitignore file. #.idea/caches #.idea/modules.xml ## Comment next line if keeping position of elements in Navigation Editor is relevant for you #.idea/navEditor.xml # Keystore files # Uncomment the following lines if you do not want to check your keystore files in. #*.jks #*.keystore # External native build folder generated in Android Studio 2.2 and later .externalNativeBuild .cxx/ # Google Services (e.g. APIs or Firebase) # google-services.json # Freeline freeline.py freeline/ freeline_project_description.json # fastlane fastlane/report.xml fastlane/Preview.html fastlane/screenshots fastlane/test_output fastlane/readme.md # Version control vcs.xml # lint lint/intermediates/ lint/generated/ lint/outputs/ lint/tmp/ # lint/reports/ # Android Profiling *.hprof ``` 这个模板来自于[Git Ignore](https://github.com/github/gitignore),并根据自己需求更改。 ## 设置仓库 经过查阅资料自己实验,我确实可以实现我的目的了,但是有几个要求依旧不能达到我的标准,窃以为是Github加入了一些限制,毕竟本来Git是让你方便管理自己的项目的,也是以项目为管理单位的,结果我要把多个项目放在同一个仓库下,那不是违背了Git的初衷。 于是先说明,这个方法有一个必要步骤就是需要你把Github的仓库重新拉到本地再Push. 具体步骤如下: 首先假设我们有两个项目,分别在Test1/Demo1和Test2/Demo2目录。 然后我们需要进到Test1目录下(因为如果进入的是Demo1目录那上传的就是Demo1中的文件)。 ``` bash git init git add . git commit -m "xxx" . git remote add origin "URL" git push origin master ``` 这都是git的常规操作,没什么好说的。但是对于Demo2而言却有不同,因为在git push的时候,会提示大意是这不是同样的仓库,两者的提交各不相干之类的(具体log忘记了)。于是我们需要先执行这个命令 ``` bash git pull origin master --allow-unrelated-histories # 然后再push git push origin master ``` > 如果出现OpenSSL SSL_read: Connection was reset, errno 10054这种问题,可能是网络不稳定导致的,也可能是没有设置ssl验证导致的。 > 查询的结果都是推荐取消验证,即```git config --global http.sslVerify "false"``` > 但是我觉得这样不太好,有空还是要给它验证不就完事了嘛 这套流程走下来就感觉把不同的项目放入同一个仓库中就很离谱,因此我认为最好还是不同的项目分开为好,或者同种类型的项目,比如我在Android中练习了一些Demo,给大仓库设置一个git仓库就好了。 > 还有一个非常简单的方法,那就是不同的项目提交到不同的分支,切换分支就是切换项目。那也太违背Git的初衷了吧。 如果真需要这么做,我感觉repo确实可能有用。 ----- 还需要做的工作: * 配置gitignore(已完成) * 学习repo(?我感觉多项目配置可能会用到) * 学习如何本地删除GitHub仓库等操作(?这有啥用) 未完待更新。。。 标签: git, Android Studio