github极简指南
入生信的坑已经3年多了,但是开始github的旅程才一年多,起初主要是为了建立bioconductor中文社区而学习的,现在也在自己的github上面分享了不少代码,有一些心得体会,欢迎大家前往github star我的项目
当初想了解github的时候看到过不少教程,始终觉得不够透彻,还是分享一下自己的心得吧。
首先要明白为什么要用github,一般就4类需求啦:
- 仅仅是为了查看拷贝别人的代码,那么其实没必要用github,下载代码即可。
- 需要分享代码,那么创建一个账户把代码上传即可。
- 一个长期的编程项目,就略微有点麻烦,会涉及到代码备份,回滚,撤销等各种git指令,其实大部分人不需要学这东西。我就从来没有用过回滚操作。
- 如果是团队合作,那么更加复杂了,需要买一本git操作书籍开学习,并且经常团队会议,学习几十个小时才行。
大部分人只需要学会把自己的电脑跟自己的github账户关联,然后新建一个git项目跟github里面的仓库关联即可。
用git clone
复制一个 Git 仓库
大多数人的需求仅止于此啦,就是想复制一个项目,看看代码,你就可以克隆那个项目。 在终端执行 git clone [url],[url] 为你想要复制的项目,就可以了,比如下面:
上述操作将复制该项目的全部记录,让你本地拥有这些。并且该操作将拷贝该项目的主分支, 使你能够查看代码,或编辑、修改。
默认情况下,Git 会按照你提供的 URL 所指示的项目的名称创建你的本地项目目录。 通常就是该 URL 最后一个 / 之后的任何东西。
这个时候跟github本身没有关系,因为你只是下载了文件而已,并没有涉及到提交代码。如果要提交代码,需要把自己的电脑跟github关联,并且关联指定的仓库。
安装git,然后把自己的电脑关联自己的github账户:
去github官网创建账号的教程我就不写了,有了账号密码就需要跟自己的电脑关联起来,这样github网页才会认可你,允许你上传你的代码。
如果是windows电脑,那么需要下载git软件才可以,软件下载地址http://git-scm.com/,安装好git就可以打开终端了。
如果是mac或者linux,那么打开终端即可,一般都默认安装了git软件。
终端,就是下面这样的黑白命令行,打开之后在终端里面运行命令: ssh-keygen -t rsa -C "jmzeng1314@163.com"
(替换成自己的github注册邮箱)
可以看到home目录
下面多了一个.ssh文件夹
用notepad++等高级文本编辑器打开那个public key文件,把里面的内容复制到自己的github网页
里面的ssh keys里面
然后就成功啦,如下ssh -T git@github.com
,可以用测试一下
配置本地用户和邮箱
用户名邮箱作用 : 我们需要设置一个用户名
和邮箱
, 这是用来上传本地仓库到GitHub中, 在GitHub中显示代码上传者;
使用命令 :
git config --global user.name "jmzeng1314" //设置用户名
git config --global user.email "jmzeng1314@163.com" //设置邮箱
到此Git客户端已安装及GitHub配置完成,现在可以给GitHub传输代码了。
客户端把本地文件夹和github仓库关联
github的客户端非常之多,很多人喜欢github desktop,不过我比较熟悉的Rstudio,因为我喜欢R语言。
Rstudio客户端的global菜单里面有设置github账号关联的方法,因为我们电脑本来就已经关联了,这个就略过哈。
首先在自己的github网页里面新建同样的空的project,然后去自己刚才在本机用Rstudio新建的文件夹里面:
因为是空白仓库,所以直接进入终端,然后进入项目文件夹里面把本地文件上传到指定的即可。
$git init //初始化
$git add . //把所有文件加入到索引(不想把所有文件加入,可以用gitignore或add 具体文件,见下文)
$git commit //提交到本地仓库,然后会填写更新日志($git commit -m “my first vesion of ...”)
$git remote add origin https://github.com/jmzeng1314/test.git //增加到remote
$git push origin master //push到github上
记住要在github网站里面新建的是空白的仓库哦。
这样就把网页版github和本地的文件夹联系起来了,以后要修改了这个程序,只需要点击commit+push即可,如果是网页版的程序被修改了,就先pull一下。
当然,其实对大部分人来说,意义不大,因为大家喜欢命令行的,不是很喜欢这个鼠标点击来进行同步。命令行就需要继续看下面的教程啦。
命令行把本地文件夹和github仓库关联
首先在自己的github网页里面新建一个空的仓库,然后运行下面的代码即可!
cd ~/test //到test目录,本地目录名与repository的名字不一定相同
git init ##初始化
git add . ##把所有文件加入到索引(不想把所有文件加入,可以用gitignore或add 具体文件,见下文)
git commit -m 'aha' ##提交到本地仓库,然后会填写更新日志($git commit -m “my first vesion of ...”)
git remote add origin https://github.com/jmzeng1314/test.git ##增加到remote
git push origin master ##push到github上
记住一定要是空白的仓库哦,如果万一你新建仓库的同时建立了readme文件,就直接clone好了,走下面的流程。
github进阶操作。
其实就是本地的代码有所修改,需要同步到github而已,又或者github网页里面的代码被修改了,需要同步到本地。如果是多个人合作,那么别人会修改你的代码,所以每次你上传代码之前,都需要先把github网页里面的代码先拉下了,再合并后上传自己的。
1.更新项目(新加了文件),这个是最高频需求
$cd ~/hello-world
$git add . //这样可以自动判断新加了哪些文件,或者手动加入文件名字
$git commit //提交到本地仓库,不加参数会提示,注意:^=Ctrl,按照提示来就好了~~~
$git push origin master //不是新创建的,不用再add 到remote上了
2.更新项目(没新加文件,只有删除或者修改文件):
$cd ~/hello-world
$git commit -a //记录删除或修改了哪些文件
$git push origin master //提交到github
3.忽略一些文件,比如*.o等:
$cd ~/hello-world
$vim .gitignore //把文件类型加入到.gitignore中,保存
然后就可以git add . 能自动过滤这种文件
4.clone代码到本地:
$git clone git@github.com:WadeLeng/hello-world.git
5.假如本地已经存在了代码,而仓库里有更新,把更改的合并到本地的项目:
$git fetch origin //获取远程更新
$git merge origin/master //把更新的内容合并到本地分支
这个是最高频需求
6.撤销
$git reset
7.删除
$git rm * // 不是用rm
//———————————————常见错误—————————————————-
1.$ git remote add origin git@github.com:WadeLeng/hello-world.git
错误提示:fatal: remote origin already exists.
解决办法:$ git remote rm origin
然后在执行:$ git remote add origin git@github.com:WadeLeng/hello-world.git 就不会报错误了
- $ git push origin master
错误提示:error:failed to push som refs to
解决办法:$ git pull origin master //先把远程服务器github上面的文件拉先来,再push 上去。
//———————————————————————————————————————
装逼请看这个:http://www.oschina.net/question/1397765_166368
安装git工具看这个:http://www.ihref.com/read-16377.html
上传自己的代码看这个:http://blog.csdn.net/hanhailong726188/article/details/46738929
一些开发过程的注意事项:http://blog.csdn.net/u011068702/article/details/49531167
简介完整教程:http://caibaojian.com/use-github.html
https://www.r-bloggers.com/rstudio-and-github/
http://r-bio.github.io/intro-git-rstudio/