转载至-----AS中Git与GitHub的使用入门 - Ralap Zhong的专栏 - 博客频道 - CSDN.NET
一直想把自己的写的开源小项目放到github中,这两天才花时间来学学Git。遇到些问题,百度了很多才解决。跟SVN一样,值得写一篇总结记录下,虽然上资源很多,但作为入门,自己遇到的写出来完全不一样。
一、 Git与GitHub的简单介绍
Git是一个开源的分布式版本控制工具。
GitHub是一个使用Git作为版本控制的项目托管平台,它是一个网站。
详细请参考:http://www.cnblogs.com/cocowool/archive/2012/02/17/2356125.html
二、 Git的安装
下载地址:https://git-scm.com/download/win或https://git-for-windows.github.io/
安装时,全部默认选择即可。
三、 AS中配置Git与GitHub
1. Git的配置
在Settings设置中。
Path to Git executable: 【Git安装后的路径】
然后“Test”测试一下,成功才可以。
2. GitHub的配置
Host: github.com
Login: 【你的github用户名】
Password: 【github登录密码】
填好后,也进行“Test”测试一下,同样成功才可以。
测试完后按确定,会提示你是否设置密码,看个人需求。
四、 上传代码到GitHub
1. 创建GitHub仓库
在Github上创建一个仓库:
创建好后,将是这个样子,里面包括一个.gitignore忽略配置文件和一个README.md
git地址如下:
2. 创建Git本地仓库
选择工程 —— VCS —— ……
此时,VCS的5个图标显示出来了,且要提交的文件名都是暗红色
3. 把工程add添加到仓库
选择工程 —— 右键 —— Git —— Add
Add后待提交的文件名是绿色
4. commit提交
CommitMessage:填入提交说明信息。主要用于说明你做了哪些修改。
按Commit提交即可。
注:我每次都无法提交,commit后,进度对话框走到一半就立马消失了。解决办法见下面常见问题的“无法commit”。
提交后的文件颜色是灰白色。修改过的文件时淡蓝色
5. push推送到GitHub
Commit后会自动弹出Push推送窗口,点“Define remote”。
Name:默认origin
URL:就是github的网页地址,上面已提供获取方法
上面的界面操作,等同于Git Bash中使用命令:
git remote add origin https://github.com/zjun615/GitHubTest.git
然后“OK”再“Push”
注:我这里的Push也会出问题,见下面的解决方法
刷新github后,就能看到上传的工程文件:
五、 常见问题
1. 无法commit
因为会检查代码,就算没有错误,只有警告它也会让你无法提交。不会像单个文件的提交一样,提示你选择Review还是继续commit。所以就取消提交页面的“Perform code analysis”选项
2. 无法push推送
现象:
Push的时候,弹出错误信息:Push rejected,Push to origin/master was rejected
控制台输出的详细错误信息:
原因:
通过上述错误信息,告诉我们github中有我们本地没有的文件,需要先pull。在VCS —— Git —— Pull
Pull也会报错:Git Pull Failed,fatal: refusing to merge unrelated histories
也就是说直接pull也是不行的。并提示拒绝合并两个不相关的仓库
解决办法:
打开Git Bush。本地资源管理器的工程目录下,右键——Git Bush Here。或直接打开Git Bash,然后用cd命令打开工程目录。
输入命令:git pull origin master –allow-unrelated-histories
表示允许不相关的仓库合并。
此时,你可以看到工程中多了两个github中的两个文件
其中.gitignore文件是还没有添加的,需要添加然后提交。
添加命令:git add .gitignore
提交命令:git commit
添加后提交,会弹出提交的提示信息:
这里是VIM文本编辑器让你提交。操作命令:
进入到输入状态:按i键
从输入状态退出:Esc键 —— Shift+;键 —— wq!(保存并退出)或q!(不保存退出) —— Enter
最后使用提交,命令:git push –u origin master
上面信息代表上传成功,去github看看就知道了。
此问题困扰了我很久才解决,最主要的就是这条命令:
git pull origin master –allow-unrelated-histories
其他的命令都可以在界面上操作。
参考:http://stackoverflow.com/questions/37937984/git-refusing-to-merge-unrelated-histories
3. 取消工程与Git的关联
在本地项目工程下有一个.git文件夹,删除即可。