Android Studio项目与Git托管
1. 简单理解之间的关系:
其整体结构可以看成三部分:
A:文件夹/文件实例;
B:本地git仓库;
C:远程git仓库。
他们之间的工作原理流程:首先创建一个本地git仓库,然后将文件(夹)实例add进来,然后提交commit到本地虚拟缓存中,把本地git仓库和远程git仓库关联起来,最后将本地git仓库内容push推送到远程git仓库(关联推送有两种方式:https和ssh)
(本教程通过ssh,需要提前配置好ssh)
2. 三者之间建立联系:
首先as中的工程项目可以看成是文件夹文件实例,然后选定工程目录把自己变成为本地git仓库
当项目文件夹变成了本地git仓库以后,目录下面的文件就会变红色,
3. 选择工程文件夹,鼠标右键,将工程内容add到本地git仓库中去
当工程内容add到本地的git仓库中后,文件名会变成绿色;
4. 将本地git仓库和远程git仓库关联起来,commit提交至缓存并push推送到远程仓库
如图,找到as工程文件夹,点击鼠标右键,git bash here通过git bash命令将本地git仓库和远程git仓库关联起来
5. 可以通过进入as中查看工程是否有关联到对应的远程仓库,如图:
点击pull进入
如图,可以看到工程已关联remote仓库John/Test.git,且Branches to merge中有origin和master选项,此时可以commit提交和push推送as工程到git远程仓库上去。
6. 将本地git仓库关联git远程仓库后,即在as中选择项目,鼠标右键将工程提交并推送到git远程仓库上去,如图:
7. 点击Commit Directory…将工程提交并推送到远程git仓库上去
如上图
如图所示,选择Commit and Push…将工程提交并推送到远程git仓库上去,大功告成。
注意:首次提交,Commit Message栏一定要填写备注信息,否则无法提交,并会弹出对话框提示:please specify commit message。
8. 疑难杂症:
1. 在步骤5中,如果点击pull进去有remote远程仓库,但Branches to merge中没有origin和master是怎么回事,怎么办?
2. 在as项目中,应该右键app文件夹还是工程名字文件夹
在Android下选择app文件夹右键
3.
在Project下Test工程名右键
两者上传到远程仓库时又会有什么差别呢?
解答:8.1 没有origin 和master 的话,有两种可能:
1.可能是在关联远程仓库时出了差错;
2.可能是as工程没有提交和推送到远程git仓库
以上两种只是猜测,待验证
如果是第一种情况,在git bash时可以 git init初始化仓库
或者 git remote rm origin取消关联仓库,
然后再重新关联 git remote add origin…
如果是第二种情况就正常流程提交,注意第一次提交推送必须要填写
Commit Message,否则无法提交且系统提示。
实践证明:1.通过git bash 命令将本地git仓库和远程git仓库关联起来后,如图
如图,在Branches to merge栏并没有出现origin和master,没有毛病,当as工程提交到远程git仓库上去后才会在Branches to merge栏出现origin 和master
8.2目前简单来看,提交Android下的app文件夹是一些主要的文件,
而提交Project下的工程名文件夹则会包括app在内及一些配置文件
8.3 在as工程中,可以单个文件提交推送,也可以整个目录提交推送,看需要。
单个修改提交推送的话选择单个文件,推送,(可以右键或vcs),选了文件就
没有add选项,只能commit和推送
8.4当从github,gitlab等地方clone他人的as工程时,工程默认Remote是他人的git远程仓库,可以直接提交到他人git远程仓库,但需要输入他人密码或者被拒绝(前提也是as工程需要变成本地git仓库)