运用Github可以进行开源项目
Git具有极其强大的克隆和分支功能,利用Github可以让别人参与你的开源项目,也可以参与别人的开源项目。
如何参与一个开源项目?
选定一个开源项目(比如人气极高的bootstrap项目,https://github.com/twbs/bootstrap
点Fork在自己的账号下克隆了一个bootstrap仓库,然后,从自己的账号下clone:
<pre><code>git clone git@github.com:michaelliao/bootstrap.git</code></pre>
- 如果你想修复bootstrap的一个bug,或者新增一个功能,立刻就可以开始干活,干完后,往自己的仓库推送。
- 如果你希望bootstrap的官方库能接受你的修改,你就可以在GitHub上发起一个pull request。当然,对方是否接受你的pull request就不一定了。
自定义GIt
-
改变Git显示颜色
<pre><code>git config --global color.ui true</code></pre>
效果如图所示
-
忽略特殊文件
在https://github.com/github/gitignore 上有着Github准备的各种配置文件,在上面找到.gitignore
文件,下载下来,之后把需要隐藏的文件放进去就可以让Git自动忽略这些文件。
忽略文件的原则是:
- 忽略操作系统自动生成的文件,比如缩略图等;
- 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成3 的文件就没必要放进版本库,比如Java编译产生的.class文件;
- 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
最后,将.gitignore
也提交到Git,
检验.gitignore
标准是it status
命令是不是说working directory clean
PS: 有些时候,你想添加一个文件到Git,但发现添加不了,原因是这个文件被.gitignore
忽略了:
可以用-f
强制添加到Git:
<pre><code>git add -f App.class</pre></code>
可以用git check-ignore
检查规则是否有错。
配置别名
在git.bash上面可以对输入指令进行配置别名,输入如下代码即可完成
<pre><code>git config --global alias.别名 原名</code></pre>
ps:加上global的输入指令是对针对当前账户的,而不加的是针对当前仓库的。
-
搭建服务器
准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,
安装git
<pre><code>sudo apt-get install git </pre></code>创建一个git用户,用来运行git服务:
<pre><code>sudo adduser git </pre></code>创建证书登录:
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub
文件,把所有公钥到/home/git/.ssh/authorized_keys
文件里,一行一个。初始化Git仓库:
先选定一个目录作为Git仓库,假定是/srv/sample.git
,在/srv
目录下输入命令:
<pre><code>sudo git init --bare sample.git</pre></code>
Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git
结尾。然后,把owner
改为git
<pre><code>sudo chown -R git:git sample.git</code></pre>禁用shell登录:
出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd
文件完成。找到类似下面的一行:
<pre><code>git:x:1001:1001:,,,:/home/git:/bin/bash</code></pre>
改为:
<pre><code>git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell</code></pre>克隆远程仓库:
<pre><code>git clone git@server:/srv/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.</code></pre><p>