使用Github与自定义化Git

2016-11-13  本文已影响0人  yohn

运用Github可以进行开源项目

Git具有极其强大的克隆和分支功能,利用Github可以让别人参与你的开源项目,也可以参与别人的开源项目。

如何参与一个开源项目?
  1. 选定一个开源项目(比如人气极高的bootstrap项目,https://github.com/twbs/bootstrap

  2. Fork在自己的账号下克隆了一个bootstrap仓库,然后,从自己的账号下clone:
    <pre><code>git clone git@github.com:michaelliao/bootstrap.git</code></pre>

如图所示
  1. 如果你想修复bootstrap的一个bug,或者新增一个功能,立刻就可以开始干活,干完后,往自己的仓库推送。
  2. 如果你希望bootstrap的官方库能接受你的修改,你就可以在GitHub上发起一个pull request。当然,对方是否接受你的pull request就不一定了。

自定义GIt

<pre><code>git config --global color.ui true</code></pre>

效果如图所示

https://github.com/github/gitignore 上有着Github准备的各种配置文件,在上面找到.gitignore文件,下载下来,之后把需要隐藏的文件放进去就可以让Git自动忽略这些文件。
忽略文件的原则是:

  1. 忽略操作系统自动生成的文件,比如缩略图等;
  2. 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成3 的文件就没必要放进版本库,比如Java编译产生的.class文件;
  3. 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
    最后,将.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的输入指令是对针对当前账户的,而不加的是针对当前仓库的。

  1. 准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,

  2. 安装git
    <pre><code>sudo apt-get install git </pre></code>

  3. 创建一个git用户,用来运行git服务:
    <pre><code>sudo adduser git </pre></code>

  4. 创建证书登录:
    收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥到/home/git/.ssh/authorized_keys文件里,一行一个。

  5. 初始化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>

  6. 禁用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>

  7. 克隆远程仓库:
    <pre><code>git clone git@server:/srv/sample.git

Cloning into 'sample'...

warning: You appear to have cloned an empty repository.</code></pre><p>

上一篇 下一篇

猜你喜欢

热点阅读