Android 首次提交到Git

转自:http://blog.csdn.net/mylizhimin/article/details/53415686

首先准备工作git客户端和as客户端是不可少的工具,本次使用的是as2.2.2和git2.10.2;

git:https://git-scm.com/downloads

下载安装后在as里面关联上,点test可以测试一下,弹出版本就说明关联成功

Android 首次提交到Git_第1张图片

下面我分享三种操作方式,以界面交互为主,git命令为辅。

首先说明一点,github算是git服务器的一种,另外还有很多可能会使用到的git服务器,比如常用的GitLab,或者csdn的代码托管服务等等,都是大同小异。这里以github为例,但是as里面是可以直接share 到github,其他地方貌似不可以直接share,参见第三种方法;前两种是都可以通用的。

方法一:先创建项目,后与git连接

1、首先我们创建一个测试项目GitTest,点击VCS--Enable Version Control

Integration,在弹出框右边选上Git。这个时候会发现项目会发生几点变化,鼠标右键点击项目出现Git选项;项目文件颜色变为红色;在as右下角出现Git:master;如下图:

Android 首次提交到Git_第2张图片

图1-1

Android 首次提交到Git_第3张图片

图1-2

Android 首次提交到Git_第4张图片

图1-3

2、在github上创建远程代码仓库GitTest,注意这里名字可以和项目名字不一样;登录github,进到个人主页,点击切换到Repositories,然后点new创建。可以写上描述,选择公开或私有,也可以选择为项目添加一个README说明文件,如下图:

Android 首次提交到Git_第5张图片

图2-1

Android 首次提交到Git_第6张图片

图2-1

3、切回as,那么在提交项目之前要做一件很重要的事情,就是配置好gitignore文件,我们将项目展开会发现as已经帮我们生成了gitignore文件,在项目根目录有一个,在app目录也有一个;那么在app

模块里面很简单只有一行/build,这个我们不用管,那么在项目根目录的gitignore文件里面的内容我们可以看一下

Android 首次提交到Git_第7张图片

图3-1

切换到project模式下我们会发现,项目中的文件并不是都变红了,有的是白色的,那么这些没有变红的文件就是被这个gitignore文件忽略掉的,那么我们关心的是哪些文件应该被忽略掉哪些文件不应该忽略?是as能在编译过程中自动生成的文件都不应该提交上去;也就是说我传上去的代码,别人拉取下来通过as编译能够正常跑起来,并且这个时候本地不产生可以提交的文件;这些文件主要包括.idea、.gradle、iml文件、以及配置sdk路径的local.properties等等,as为我们自动生成并不是很全面,这里推荐一个github上列出来的https://github.com/github/gitignore/blob/master/Android.gitignore我们也可以使用这个。这个文件之前是把整个.idea文件夹都忽略的,后来又改成只忽略其中部分文件,不知道为什么,我认为只要是可以自动生成的就可以忽略,即时每个人生成的都一样。

4、准备好了之后下面开始提交代码了,在项目根目录上右键Git-->Add将代码添加到索引库,然后Git-->Commit Directory提交到本地仓库;到此为止我们依然没有和github联系上;

5、将代码push到远程仓库Git-->Repository-->push到远程仓库,在弹出框里面输入之前创建的git远程仓库地址https://github.com/AndSync/GitTest.git,点OK,如果没登录会提示登录,以前登录过就不提示了,完了之后点push。

Android 首次提交到Git_第8张图片

图5-1

这时候在右上角会有一个提示push rejected

,原因是我们本地仓库的master主线并没有和远程仓库的master主线绑定上,那么首先Git->Repository-->fetch一下,获取到远程master分支,这时候发现右下角有变化了,显示出来了origin/master,

Android 首次提交到Git_第9张图片

图5-2

然后我们需要通过命令来完成绑定,在Terminal里面可以输入命令,这段命令怎么来的,其实如果你不用as可视化工具 而是用命令去 git push 的话是会提示给你的,告诉你应该输什么命令,git还是很智能的,建议还是多用命令来操作。

git branch --set-upstream-to origin/master

然后我们再去push 这时候可以了,会弹出一个merge提示框,我们点merge又报错了,哦是不是因为创建项目的时候有一个文件README,那我们pull一下看行不行,发现也报错,于是我们要祭出另一句git命令来解决这个问题

Android 首次提交到Git_第10张图片

图5-3

git pull --allow-unrelated-histories

允许拉取不相关的历史记录,把README拉取过来了,当然如果你创建项目的时候没有创建README可能没这么麻烦,这时再去push就OK了。整个过程到此结束

方法二:先创建连接,后创建项目

这个怎么玩的呢,简要说明一下,之前不是有安装git客户端,应该在任何地方鼠标右键都有一个菜单Git Gui here -->Clone Existing Repository

Android 首次提交到Git_第11张图片

注意本地路径文件夹GitTest2事先不要创建

Android 首次提交到Git_第12张图片

clone完了之后,在这个目录下会有一个.git文件夹,和readme文件,那么到这一步我们也可以发现这种方式貌似并不适用于新建项目,因为这个文件夹里面有文件as将无法在这个目录下创建文件,那么这适用于从别的地方考过来一个已有的项目放到这里,之后从as打开项目进行add、commit、push等操作即可。

方法三:直接share到github

很简单,无需先在github上创建项目,直接share,如果需要修改gitignore文件可以先修改下。

1、VCS-->import into Version Vontrol-->Share Progect on Github

Android 首次提交到Git_第13张图片

2、登录帐号

Android 首次提交到Git_第14张图片

3、填写信息

Android 首次提交到Git_第15张图片

1.error:src refspec master does not match any

引起该错误的原因是,目录中没有文件,空目录是不能提交上去的

解决方法

touch README

git add README

git commit -m 'first commit'

git push origin master

2.fatal: remote origin already exists.

1、先删除远程git仓库

$ git remote rm origin

2、再添加远程 Git 仓库

$  git remote add origin [email protected]:FBing/Java-code-generator

如果执行 git remote rm origin 报错的话,我们可以手动修改gitconfig文件的内容

$ vi .git/config            把 [remote “origin”] 那一行删掉就好了。

Android 首次提交到Git_第16张图片

你可能感兴趣的:(Android 首次提交到Git)