Github不记录Contributions的问题

Github没有记录我的Contributions

写博客的时候一直用的Sublime Text,然后用配置好的MyGitcommitpush,这次写nForumSDK的时候,用了Eclipse集成的插件EGit,然后发现所有用Eclipsepush的Github都没有记录在Contributions里,Contributions Calendar白白的一片,太伤心了。。

Github为什么不记录

我一直在Dev分支下开发,并未merge到Master分支上,看了一下Github关于Contributions的说明,发现有这样一句话

Commits are only counted if they are made in the default branch (usually master).

只有在默认的Master分支下的Commits才能被算进去,于是我到Master分支下merge了Dev分支,发现仍然没有出现在我的Calendar中……

经过各种排查,发现了问题的所在。我在配置EGit的时候,图方便仅仅将其SSH Key设置为了MyGit的rsa_pub,其他的参数都没有修改,于是在Commit的时候,EGit自动将用户邮箱设为了dss886@我的ip地址.com,这样Github不认为Commit的用户是我……囧。

在Preference->Team->Git->Configuration中添加两条记录:user.name=dss886user.email=dss886@gmail.com,再进行Commit,发现已经记录在Contributions Calendar中了!

什么样的Contribution Github才记录?

翻译一下Gihub关于Contributions的说明,希望能帮到大家,不要让辛辛苦苦写的代码被Github忽视了:)

会被记录的Contribution情形

1. Issues and pull requests

同时满足以下两个条件将会被计入Contribution

  • 这个操作是在一年之内。(Calendar只显示一年之内的Contribution)
  • 这个操作是针对一个独立的仓库。(在Fork的仓库中进行的操作不会被记录)

2. Commits

同时满足以下四个条件将会被计入Contribution

  • Commits是在一年之内。(Calendar只显示一年之内的Contribution)
  • 进行Commits的用户被关联到了你的Github帐号中(使用SSH方式能够不输入帐号密码进行push,如果此时你Commit的帐号不在Github帐号列表中,就不会被计入Contribution)
  • 是在一个独立的版本库中进行Commit。(在Fork的仓库中进行Commit则不会被记录)
  • 是在这个版本库的默认分支(通常是Master)进行的Commit。(如果你在Dev分支下进行开发,你的Commit不会被计入Contribution,但是并不会丢失它们,一旦当你Merge到Master分支后,所有的Commit都会被重新计入。多人协作也是同理,只有被并入Master分支的Commit才会被计入,如果你的Commit在合并时被组长丢弃,在Github看来,你就白干了……)

3. 附加条件

如果你Commit的仓库不是你创建的,那么至少要满足以下四条之一,才会被计入Contribution

  • 你是这个仓库的协作者,或者是这个版本库的拥有组织中的一员。
  • 你fork过这个仓库。
  • 你对这个仓库发起过pull request或者issue。
  • 你对这个仓库标记了Star。

(私有仓库的Commit也会被计入Contribution,没有这个私有仓库权限的用户将看不到这个Commit的跳转链接)

Contributions未被Github计入的几个常见原因

  • 进行Commits的用户没有被关联到你的Github帐号中。
  • 不是在这个版本库的默认分支进行的Commit。
  • 这个仓库是一个Fork仓库,而不是独立仓库。
Win7/Win8下双击运行jar程序的方法

问题

老妈喜欢看小说,又不会下载,于是用Java写了个自动下载小说的小程序

我用的Swing UI,直接生成了.jar文件,双击即可运行

很诡异的是,用Eclipse直接run可以运行,但是Export出jar文件以后双击却没有反应

探究

怀疑是不是Eclipse的导出功能坏掉了,于是用了flatjar等工具重新打包,仍然不行

走了很多弯路以后终于Google到了问题的所在:

win7/win8的jar文件默认关联的程序是java.exe而不是javaw.exe

右键 -> 打开方式里面这两个程序也分辨不出来,都显示的是:

Java(TM) Platform SE binary

解决

右击jar包,在打开方式 -> 选择默认程序里面选中jdk目录下bin文件夹中的javaw.exe

编辑注册表,在下列项中:

HKEY_CLASSES_ROOT\Applications\javaw.exe\shell\open\command

修改值为:

"X:\jdk1.7\bin\javaw.exe" -jar "%1"

(即只需要在原来的%1前面添加-jar)

问题解决!

零基础Github Page免费无限流量个人博客搭建教程

这篇文章主要介绍了什么是Github Page,以及如何用Github Page搭建一个免费的、无限流量的个人博客并绑定独立域名。

一、前言

1.1 为什么要用Github Page搭建博客

借用阮一峰的话说,

喜欢写Blog的人,会经历三个阶段。

1. 第一阶段,刚接触Blog,觉得很新鲜,试着选择一个免费空间来写。

2. 第二阶段,发现免费空间限制太多,就自己购买域名和空间,搭建独立博客。

3. 第三阶段,觉得独立博客的管理太麻烦,最好在保留控制权的前提下,让别人来管,自己只负责写文章。

那么Github Page无疑就是第三个阶段最Geek范儿的选择了。

1.2什么是Github Page

简单的说,Github是一个具有版本管理功能的代码仓库,每个项目都有一个主页,列出项目的源文件。

但是对于一个新手来说,看到一大堆源码,只会让人头晕脑涨,不知何处入手。

他希望看到的是,一个简明易懂的网页,说明每一步应该怎么做。

因此,github就设计了Pages功能,允许用户自定义项目首页,用来替代默认的源码列表。

所以,github Pages可以被认为是用户编写的、托管在github上的静态网页。

二、安装本地Git环境

2.1 安装MyGit

首先在Github上注册账号,然后下载Windows下的Git客户端MyGit,一路next至安装完毕。

找到桌面的Git Bash,双击打开,熟悉的命令行界面就出来了。

image6

使用cd命令进入你想要的目录,比如我进入了d:/working/Git

2.2 修改Git Bash默认工作路径

值得注意的是,一般情况下打开Git Bash后默认的路径一般都是C:/Users/用户名,每次工作都得切换到常用的目录下,此操作是重复且没有意义的。

我们打开Git安装位置\etc\profile文件,找到

# normalize HOME to unix path
HOME="$(cd "$HOME" ; pwd)"
export PATH="$HOME/bin:$PATH"

增加两行,修改后结果如下:

# normalize HOME to unix path
HOME="你想要修改的HOME路径"
HOME="$(cd "$HOME" ; pwd)"
cd
export PATH="$HOME/bin:$PATH"

更多的修改路径及自定义Bash路径变量,参考这里

至此,本地的Git环境已经搭建完毕。

三、配置Github

3.1 本地生成SSH公钥

为了保证与服务器通信的安全,Github只提供HTTPS和SSH两种连接方式,这里我们使用SSH。

在Git bash中输入

$ ssh-keygen -t rsa -C "your_email@youremail.com"

看到以下信息,输入你的Github密码:

# Creates a new ssh key using the provided email Generating public/private rsa key pair. 
Enter file in which to save the key (/home/you/.ssh/id_rsa):

Enter passphrase (empty for no passphrase): [Type a passphrase] 
Enter same passphrase again: [Type passphrase again]

然后你在你的目录下会发现有一个.ssh目录,里面有一个id_rsa文件和一个id_rsa.pub文件,说明SSH私钥和公钥已经成功生成了。

3.2 将SSH公钥添加到Github

在Github网站上找到Account Setting -> "SSH Keys" -> Add SSH key,将id_rsa.pub中的内容粘贴到key一栏,点击add key按钮。

在Git Bash中输入以下代码测试:

ssh -T git@github.com

如果你看到了以下结果,说明成功了:

The authenticity of host 'github.com (207.97.227.239)' can't be established. 
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. 
Are you sure you want to continue connecting (yes/no)?[Type yes]

Hi username! 
You've successfully authenticated, but GitHub does not provide shell access.

四、创建你的Github Page

登录https://github.com/yourname,点击Repositories -> New创建一个新的仓库。

注意,Repository name一定要设置为yourname.github.io,其他选项默认,点确认

然后在这个仓库的页面https://github.com/yourname/yourname.github.io的右边栏点Settings

往下拉找到GitHub Pages -> Automatic Page generator,一路Next即可

等几分钟,访问http://yourname.github.io就能看到你创建的页面了。

五、本地修改网页和上传

在仓库页面右边栏,有一个SSH clone URL,将里面的内容复制下来

在Git Bash中输入:

$ git clone 你复制的内容

看看你的工作目录下,Github帮你自动生成的网站就被复制下来了,目录结构类似于:

--images
--javascripts
--stylesheets
  index.html
  params.json

尝试更改一下index.html,比如将

<title>Test</title>

改成:

<title>我的博客</title>

然后在Git Bash里面依次输入下面三个命令

$ git add -A
$ git commit -m "change title of index.html"
$ git push

这三个命令的意义及更多git命令的用法,见这里

上传完毕后,等几分钟,刷新页面,就会发现页面的标题已经变成“我的博客”了。

六、自定义博客的主题和页面

Github Page只是一个静态页面托管服务,也就是说不能运行php和mysql等程序。

Github Page允许站内生成网页(比如我们刚刚做的那样),

也允许用户自己编写网页上传,只不过上传的网页会经过Jekyll程序的再处理。

用Github Page建立博客的思路:

  • 使用Jekyll语言人工编写符合规范的代码上传(不推荐)
  • 使用基于Jekyll的Octopress静态博客系统搭建(推荐)
  • 使用其他基于Jekyll的静态博客主题,比如HPSTR或Hexo(推荐)

这里使用的是HPSTR主题,它的示例链接是这里

它本身就是一个Github Page,我们找到它的git地址clone下来

$ git clone git@github.com:mmistakes/hpstr-jekyll-theme.git

复制它的文件到你自己的文件夹里,然后按照配置提示修改参数、上传即可

HPSTR主题里有几篇默认文章,讲解了一下如何写文章以及一些简单的Markdown语法等等。

其他主题的安装方法也很类似,就不一一说明了。

七、绑定域名

如果你想要显得更Geek一点,还可以绑定独立域名。

假设你已经有一个域名yourname.com,在你的代码仓库的根目录下创建一个名为CNAME的文件,注意没有后缀名。

里面写入你要绑定的域名,比如youname.com

然后前往你的域名托管商处,新增一条CNAME类型的解析记录,指向yourname.github.io

根据域名托管商的默认TTL设置的不同,解析生效需要10分钟至24小时不等。

等解析生效,你就可以使用你的独立域名访问博客了。

(完)

Drupal 7:QuickTabs模块内的元素无法溢出的问题

背景

项目要求网站首页放Views生成的区块,并且要求有更多链接。

Views生成的区块默认的更多链接只能选在列表上方和下方

下图是默认在上方的样式图:

image1

为了美观,我将更多链接上移了若干个像素:

.more-link {
  position: absolute;
  top: 10px;
  left: 390px;
}

效果图:

image2

问题

然而,当我在这个区块外面再套一层区块时,

我这里用了QuickTabs模块,实际上是一个嵌套区块,

这个更多链接怎么都不显示了:

image3

探究

第一反应是z-index的问题,设了z-index还是不显示

Google一下,觉得有可能是position: relative的问题

将其所有父div标签全部加上position: relative属性,仍然不显示

真是百思不得其解

纠结了很久以后,最终将目标锁定在了父div标签的overflow: hidden属性上

CSS Overflow属性的定义:

 值  描述
 visible   默认值。内容不会被修剪,会呈现在元素框之外。
 hidden   内容会被修剪,并且其余内容是不可见的。
 scroll   内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
 auto   如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
 inherit   规定应该从父元素继承 overflow 属性的值。

QuickTabs模块的外层区块使用了overflow: hidden属性

内层元素“溢出”时,内容被div修剪掉了。

它的本意可能是为了不让内层的区块超出外层区块的大小,而打乱整个HTML文档流。

但是我这里的需求恰好就是要让内层的元素“溢出”来。

解决

QuickTabs外层区块div元素的overflow: hidden改为visible就行了:

.block-quicktabs .content {
  overflow: visible;
}

效果图:

image4

问题解决!

Drupal 7:如何修改Nivo Slider模块的宽高

Nivo Slider模块默认大小是用的height: 100%, width 100%

但IE7及以下的浏览器是不支持百分比宽高的,

而我的项目目标用户基本都是使用XP系统,项目需求是必须兼容IE7。

因此需要对其CSS修改成绝对像素大小。

问题

修改之后却出现了问题,因为用户上传的图片长宽比是不一样的,

指望用户每次上传的时候先用PS裁剪一下明显不现实,

于是我在CSS里将其拉伸了,这样就不会导致图片只显示一部分。

.block-nivo-slider img {
  width: 450px;
  height: 250px;
}

但是Nivo Slider在每次幻灯片切换前图片都会变成未拉伸的状态。

幻灯片切换的时候就会感觉图片在“跳动”。

探究

明明已经写死了img的宽高,为什么切换前会变回来呢?

初步断定是因为Nivo Slider模块在控制切换的JS里有改变图片的宽高。

翻了一下Nivo Slider模块的JS,发现是压缩过的,改起来比较麻烦。

于是又祭出万能的CSS大法了!- -!

解决

仔细分析后,发现JS是在改变img元素的height属性

我们可以用min-heightmax-height属性让height的改变无效:

.block-nivo-slider img {
  width: 450px;
  max-height: 250px;
  min-height: 250px;
}

问题解决!