网上关于GitHub的使用教程还是比较丰富,不过部分教程比较陈旧抑或写得不够详细,在我实践的过程中遇到了一些麻烦,记录下来,当是自己的一个总结吧,也供大家参考。欢迎留言交流。
本文主要讲解Windows Msysgit软件平台的使用,windows的GitHub for Windows方式和苹果系统的Github或git方式也在用,这方面网上的教程比较丰富,也就不做过多阐述了,欢迎留言讨论。
Windows版本:
在windows中搭建Git环境使用Github有两种方式:
方式一:
GitHub for Windows 软件
方式二:
Msysgit软件,我用这种方式的时候不太顺利,于是分享出来
安装软件
1. 下载Git客户端
Git客户端下载地址 :https://code.google.com/p/msysgit/downloads/list 将地址复制到浏览器栏即可下载.
2. 安装Git客户端
下载上传代码
1.在GitHub上建立项目
在https://github.com/注册账号,注册成功后就可以免费创建公共项目了,也就是代码别人可以查看,开源思想嘛你懂的。如果需要私人空间,付费可以享受。登录GitHub后,你可以在右边靠中那里找到一个按钮“New Repository”,点击过后,填入项目名称、说明和网址过后就可以创建了,然后会出现一个提示页面,记下类似https://github.com/username/projectname.git的地址,这个就是你这个项目的地址了。PS:由于网上很多教程比较陈旧,地址还是[email protected]:username/projectname.git,会导致失败,具体地址是多少你可以通过在github上查看到,以查看到的地址为准。
2.配置Git以及上传代码
安装Git成功后,如果是Windows下,选择Git Bash,在命令行中完成一切,可能开始有点麻烦,不过就那几条命令行,用几次就记住啦。首先初始设置Git:
git config --global user.name "username" git config --global user.email “[email protected]”
然后开始进行最麻烦的一步了,你需要上传文件到GitHub的Git系统上,得需要一个SSH密匙来认证,下面就开始生成密钥和提交密钥。打开Git Bash,创建SSH key:
ssh-keygen -C '[email protected]' -t rsa
然后要你输入SSH密匙的存放位置,可以不管,直接回车使用默认路径。再输入你想要的密码,SSH key就生成了。现在你需要将这个Key提交到GitHub,首先打开Key保存的位置,里面会有三个文件,找到id_rsa.pub(隐藏文件),用文本编辑器打开,复制里面的全部字符。到GitHub,在右上方工具栏里找到Account Settings。在这个页面上有一个SSH Public Keys标签,选择Add another public key。Title可以随便填一个,Key就粘贴刚才的字符,提交。
完成这些工作后,就可以上传自己的代码了。找到自己要分享上传的代码文件夹,右击选择Git Bash,或者在Git Bash中进入这个文件夹。建立一个仓库:
git init
选择要添加进仓库的文件:
git add .
一般如果你想分享这个文件夹里的所有代码,就在 add后面加“.”,上面的例子就是这样,如果传指定的,只需要把“.”改为文件名即可,现在只是选择了要加入仓库的文件,下面才是添加进入仓库:
git commit -m 'Test'
-m后面跟一个参数,表示说明,将代码提交到GitHub后,将会在代码文件信息上显示这个说明,如下图标记的地方。
搞了这么久,现在才开始把本地仓库上传到GitHub了,下面两行命令搞定问题:
git remote add origin https://github.com/username/projectname.git git push -u origin master
这个https://github.com/username/projectname.git就是上面创建项目是生成的地址。现在打开你的项目网址,你就可以发现你的代码已经展示出来了。如果你要更新代码的话,就重复上面的吧。
如果提交了敏感信息,比如代码中设置的自己的密码什么的忘删除就上传上去了怎么办?重新修改过后上传依然有历史记录,而使用Git删除历史记录貌似很麻烦,于是就采用删除项目吧,删除了再重新上传。删除项目需要在GitHub网站上右上方找到admin按钮,进去后右边最下面有个删除的按钮,这样就可以删除了。
可能遇到的问题解决:
如果输入$ git remote add origin https://github.com/username(github帐号名)/projectname(项目名).git
提示出错信息:fatal: remote origin already exists.
解决办法如下:
1、先输入$ git remote rm origin
2、再输入$ git remote add origin https://github.com/username(github帐号名)/projectname(项目名).git就不会报错了!
3、如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section ‘remote.origin’. 需要修改gitconfig文件的内容
4、找到你的github的安装路径,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc
5、找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就好了!
如果输入$ ssh -T [email protected]
出现错误提示:Permission denied (publickey).因为新生成的key不能加入ssh就会导致连接不上github。
解决办法如下:
1、先输入$ ssh-agent,再输入$ ssh-add ~/.ssh/id_key,这样就可以了。
2、如果还是不行的话,输入ssh-add ~/.ssh/id_key 命令后出现报错Could not open a connection to your authentication agent.解决方法是key用Git Gui的ssh工具生成,这样生成的时候key就直接保存在ssh中了,不需要再ssh-add命令加入了,其它的user,token等配置都用命令行来做。
3、最好检查一下在你复制id_rsa.pub文件的内容时有没有产生多余的空格或空行,有些编辑器会帮你添加这些的。
如果输入$ git push origin master
提示出错信息:error:failed to push som refs to …….
解决办法如下:
1、先输入$ git pull origin master //先把远程服务器github上面的文件拉下来
2、再输入$ git push origin master
3、如果出现报错 fatal: Couldn’t find remote ref master或者fatal: ‘origin’ does not appear to be a git repository以及fatal: Could not read from remote repository.
4、则需要重新输入$git remote add origin https://github.com/username(github帐号名)/projectname(项目名).git
使用git在本地创建一个项目的过程
//创建一个项目hello-world $ makdir ~/hello-world //打开这个项目 $ cd ~/hello-world //初始化 $ git init $ touch README //更新README文件 $ git add README //提交更新,并注释信息“first commit” $ git commit -m ‘first commit’ //连接远程github项目 $ git remote add origin [email protected]:defnngj/hello-world.git //将本地项目更新到github项目上去 $ git push -u origin master
忽略文件
在仓库目录下新建一个名为.gitignore的文件(因为是点开头,没有文件名,没办法直接在windows目录下直接创建,必须通过右键Git Bash,按照linux的方式来新建.gitignore文件)。如下图所示.
.gitignore文件对其所在的目录及所在目录的全部子目录均有效。通过将.gitignore文件添加到仓库,其他开发者更新该文件到本地仓库,以共享同一套忽略规则。
对于安卓工程为例,我们不需要把bin/和gen/目录的内容保存版本,用上述方法,在.gitignore文件里面添加:
bin/
gen/
改动过.gitignore文件之后,在工程根目录下运行:
git rm -r --cached git add .
之后可以进行提交
git commit -m "fixed untracked files"