運(yùn)用Github可以進(jìn)行開(kāi)源項(xiàng)目
Git具有極其強(qiáng)大的克隆和分支功能,利用Github可以讓別人參與你的開(kāi)源項(xiàng)目窜骄,也可以參與別人的開(kāi)源項(xiàng)目毫痕。
如何參與一個(gè)開(kāi)源項(xiàng)目?
選定一個(gè)開(kāi)源項(xiàng)目(比如人氣極高的bootstrap項(xiàng)目情屹,https://github.com/twbs/bootstrap
點(diǎn)Fork在自己的賬號(hào)下克隆了一個(gè)bootstrap倉(cāng)庫(kù),然后杂腰,從自己的賬號(hào)下clone:
<pre><code>git clone git@github.com:michaelliao/bootstrap.git</code></pre>
- 如果你想修復(fù)bootstrap的一個(gè)bug垃你,或者新增一個(gè)功能,立刻就可以開(kāi)始干活喂很,干完后惜颇,往自己的倉(cāng)庫(kù)推送。
- 如果你希望bootstrap的官方庫(kù)能接受你的修改少辣,你就可以在GitHub上發(fā)起一個(gè)pull request凌摄。當(dāng)然,對(duì)方是否接受你的pull request就不一定了漓帅。
自定義GIt
-
改變Git顯示顏色
<pre><code>git config --global color.ui true</code></pre>
效果如圖所示
-
忽略特殊文件
在https://github.com/github/gitignore 上有著Github準(zhǔn)備的各種配置文件锨亏,在上面找到.gitignore
文件,下載下來(lái)忙干,之后把需要隱藏的文件放進(jìn)去就可以讓Git自動(dòng)忽略這些文件器予。
忽略文件的原則是:
- 忽略操作系統(tǒng)自動(dòng)生成的文件,比如縮略圖等捐迫;
- 忽略編譯生成的中間文件乾翔、可執(zhí)行文件等,也就是如果一個(gè)文件是通過(guò)另一個(gè)文件自動(dòng)生成的施戴,那自動(dòng)生成3 的文件就沒(méi)必要放進(jìn)版本庫(kù)反浓,比如Java編譯產(chǎn)生的.class文件;
- 忽略你自己的帶有敏感信息的配置文件赞哗,比如存放口令的配置文件勾习。
最后,將.gitignore
也提交到Git,
檢驗(yàn).gitignore
標(biāo)準(zhǔn)是it status
命令是不是說(shuō)working directory clean
PS: 有些時(shí)候懈玻,你想添加一個(gè)文件到Git巧婶,但發(fā)現(xiàn)添加不了乾颁,原因是這個(gè)文件被.gitignore
忽略了:
可以用-f
強(qiáng)制添加到Git:
<pre><code>git add -f App.class</pre></code>
可以用git check-ignore
檢查規(guī)則是否有錯(cuò)。
配置別名
在git.bash上面可以對(duì)輸入指令進(jìn)行配置別名艺栈,輸入如下代碼即可完成
<pre><code>git config --global alias.別名 原名</code></pre>
ps:加上global的輸入指令是對(duì)針對(duì)當(dāng)前賬戶的英岭,而不加的是針對(duì)當(dāng)前倉(cāng)庫(kù)的。
-
搭建服務(wù)器
準(zhǔn)備一臺(tái)運(yùn)行Linux的機(jī)器湿右,強(qiáng)烈推薦用Ubuntu或Debian诅妹,
安裝git
<pre><code>sudo apt-get install git </pre></code>創(chuàng)建一個(gè)git用戶,用來(lái)運(yùn)行g(shù)it服務(wù):
<pre><code>sudo adduser git </pre></code>創(chuàng)建證書(shū)登錄:
收集所有需要登錄的用戶的公鑰毅人,就是他們自己的id_rsa.pub
文件吭狡,把所有公鑰到/home/git/.ssh/authorized_keys
文件里,一行一個(gè)丈莺。初始化Git倉(cāng)庫(kù):
先選定一個(gè)目錄作為Git倉(cāng)庫(kù)划煮,假定是/srv/sample.git
,在/srv
目錄下輸入命令:
<pre><code>sudo git init --bare sample.git</pre></code>
Git就會(huì)創(chuàng)建一個(gè)裸倉(cāng)庫(kù)缔俄,裸倉(cāng)庫(kù)沒(méi)有工作區(qū)弛秋,因?yàn)榉?wù)器上的Git倉(cāng)庫(kù)純粹是為了共享,所以不讓用戶直接登錄到服務(wù)器上去改工作區(qū)俐载,并且服務(wù)器上的Git倉(cāng)庫(kù)通常都以.git
結(jié)尾蟹略。然后,把owner
改為git
<pre><code>sudo chown -R git:git sample.git</code></pre>禁用shell登錄:
出于安全考慮遏佣,第二步創(chuàng)建的git用戶不允許登錄shell挖炬,這可以通過(guò)編輯/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>克隆遠(yuǎn)程倉(cāng)庫(kù):
<pre><code>git clone git@server:/srv/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.</code></pre><p>