我的github极简指南

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 就不会报错误了

  1. $ 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/

 

Comments are closed.