Mac环境下AS配置Git

如要转载,请注明来源,小石头的博客: http://blog.****.net/lu1024188315
如果你还没有安装Git,请参考这篇文章:《Git安装之Window Mac
   在这里说下Git使用简单的原理,如果你看了这篇文章:《Mac上Git之创建本地库》你对git应该会有基本的认识,想要把自己的文件提交到远程库里,首先要在本地(自己的电脑上)建立本地库,这个库将会是你的本地工作区,而本地库中.git文件将会是你的缓冲区(这个文件是隐藏文件),你使用Git add命令时,只是把文件添加到缓冲区,再调用 Git commit 命令时才是提交文件到缓冲区的当前分钟(master)分支,然后通过push 命令把文件推送到远程库,当然前提情况下,是你已经和远程库建立关联了,啰嗦了这么多,我们回到AS,其实AS使用Git提交代码,道理是一样的,首先建立本地库,AS把当前的项目文件作为本地库,也就是Git的工作区,然后和远程库建立关联,就可以实现push代码和pull代码。

1、配置git

android Studio一般安装后已经自行配置了git程序所在的位置,如果没有的话,可以按照下图进行配置 
Mac环境下AS配置Git

Mac版,会自己识别填充 例如我的: /usr/local/bin/git。
点击test,是这样的:
Mac环境下AS配置Git

2、对项目启用git管理 就是在当前目录下建立本地库

(1)方案一 使用 Enable Version Control Integration

这步是将项目纳入git管理之下,点击android studio菜单栏的VCS后,选择Enable Version Control Integration. 


Mac环境下AS配置Git

在弹出的框里选择Git 

Mac环境下AS配置Git

此时,你到该项目目录下查看会发现有个.git文件当然这个文件是隐藏的,如何查看参考Mac上Git之创建本地库》标题2。

(2)方案二  VCS——>import into version control ——> Create Git Repository 然后出现下面界面:

Mac环境下AS配置Git 

选择你的当前项目目录,就可以了,此时,你到该项目目录下查看会发现有个.git文件当然这个文件是隐藏的,如何查看参考Mac上Git之创建本地库》标题2。

(3)方案三 使用Git init命令

打开终端,使用cd命令进入到你的项目,例如 我的项目在 /Users/xxx/androidStudioProjects/WindowsApp, 命令如下:
$ cd  /Users/xxx/androidStudioProjects/WindowsApp
或者
$ cd  androidStudioProjects/WindowsApp

使用下列命令进行初始会:

$ git init

建议使用第一种方案简单方便,快捷。 

3、添加项目

选完上述操作之后可以发现文件名都变成红色了,如图:
Mac环境下AS配置Git

然后,选中你要上传的项目右键——>Git——>add,之后变成了这样:
Mac环境下AS配置Git
变成绿色的,这是绿色的文件等下就是你要上传的东东。

4 链接远程的Git服务

(1)打开终端,使用cd命令进入到你的项目,例如 我的项目在 /Users/xxx/androidStudioProjects/WindowsApp, 命令如下:
$ cd  /Users/xxx/androidStudioProjects/WindowsApp
或者
$ cd  androidStudioProjects/WindowsApp
(2)链接远程仓库:
git remote add origin xxx
xxx 代表 你在http://git.oschina.net/ 创建项目后,可以访问的地址:
那么,我的就是: $ git remote add origin  https://git.oschina.net/lzbgit/windowapp.git
如果你不会在[email protected]建立项目或找不到所建立项目的Url请参见这篇《Git之本地库提交到开源库(Window)》文章的第2和第6标题。
(3)建立本地分支和远程分支的关联
$  git branch —set-upstream master origin/master

5 提交项目

回到AS,选择你要提交的项目右键——>Git——>Commit Directory 。
建议先执行VCS -> Git -> Fetch, VCS -> Git -> Pull把最新代码拉下来,这样可以尽量避免冲突
此过程可能会提示你再输入远程服务的地址,也就是刚刚使用的Git地址:
Mac环境下AS配置Git

说明下,commit 是指提交到 本地库,也就是master分支;
              commit and push很明显同时进行了两个动作一个是commit 和push  直接把项目提交到远程库了。
也许你也可以按照下面两个步骤操作:
(1)回到AS,选择VCS -> Git -> Fetch, VCS -> Git -> Pull把最新代码拉下来,
(2)提交代码,选择VCS -> Commit Changes经过漫长的等待会出现代码提交窗口,右下角选择 Commit And Push 
说明,之所以先进行pull的操作,因为在[email protected]建立项目的会自动生成几个文件,例如gitignoreLICENSEREADME.md,如果直接提交的话,可能造成无法提交,可能提示这个异常:
Push to origin /master was rejected;如果真出现这个异常了,也不要急,参考标题6-2的解决方案。

以上过程如果出现如下的情况(没有就不用看了):
Mac环境下AS配置Git

那么你就点击Define remote,输入远程服务的URL,例如我的是:
Mac环境下AS配置Git
还可能提示你输入[email protected]的账号和密码,直接输入就可以了,到这里应该可以提交你的项目到远程库里,
刷新下你的远程库,应可以看到类似的结果:
Mac环境下AS配置Git
到此说明你提交成功。
如果还是无法push的话,那你可以进入命令编辑框进行进行强行push,命令如下:
$ git push -u origin master -f

6 可能出现的异常

(1)Authentication failed

GitHub push代码发生错误:fatal: Authentication failed for 'https://github.com/ ...

使用的https提交,在用SourceTree提交代码时候发生错误,返回的错误提示说:

解决方案,重新执行git config命令配置用户名和邮箱即可:
  1. git config -–global user.name "xxx" 
  2. git config –-global user.email "[email protected]
注意一定加上参数 -–global,不然你的配置是一次性的。
(2)Push to origin /master was rejected
解决方案一:按照标题4提出的先pull再提交。
解决方案二:VCS --> Git --> Branches——> then select origin/master --> Rebase onto 
     这个过程,可能会弹出来个对话框,要你手动合并冲突,如果你是第一次提交,且远程库中没有什么内容(除了自动生成的几个文件),
那你可以直接选择 accept yours 就是说,冲突的地方以你的文件为准;如果不是第一次提交,出现了这个东东,那恭喜你,有工作要做了,那就按照提示一行一行的进行合并了。
如果还没有办法解决,那哥们对不起了,我也无能为力了。
写了这么多,希望能帮到你吧!

如果这篇文章不能帮助到你,可以点击这里,也许有惊喜!