从 Git Gui 管理的Repository(库) 提交更改到 Bonobo服务器管理的Repository(库)
要提交更改到Bonobo服务器管理的某个Repository(库),必须先得在Bonobo服务器上有此Repository(库)——简直就是废话。那么怎么才能这个Repository(库)变出来呢?其实很简单,在Bonobo网站里新建一个就可以了,具体步骤看看这篇随笔。这里介绍如何在Git Gui上新建本地Repository(库),并在本地新建文件、修改文件,然后将更改commit(提交)到本地库,最后push(推)到远程的Bonobo服务器。操作步骤和注意事项如下:
- 打开Git Gui,如图所示:
- 点击“Create New Repository”,进入如下界面,并为新的本地库选择一个目录:
- 点击“Create”按钮,新建本地库的操作就算完成了,进入如下界面:
新建的本地库里只有一个“.git”文件夹,是Git用于文件版本管理的,我们不用动它。此时新建的本地库对应的目录如下所示:
下面介绍怎么提交对本地库中文件的修改到远程的Bonobo服务器,步骤如下:
- 我们在本地库对应的目录下,新建一个用于测试的文本文档,随便输入几个文字,如下图所示:
- 保存并关闭刚才新建的文本文档,在“Git Gui”中点击“Rescan”按钮,“Git Gui”会检索出新建了的或修改了的,但未提交到本地库的文件,如下图所示:
- 在“Unstaged Changes”中选中刚新建的“测试.txt”文件,点击“Stage Changed”按钮,选中的文件就会进入“Staged Changes(Will Commit)”,此时文件就准备好了以提交到本地库(此时还未提交到本地库),点击“Sign Off”按钮,进行署名(请看最下面的网摘),如下图所示:
- 点击“Commit”按钮,将新建的“测试.txt”文件提交到本地库,此时状态栏会显示如:“Created Commit 782dec06:Signed-off-by unknown ...”字样,如下图所示:
- 点击“Push”按钮,就可以把本地库推到远程Bonobo服务器的远程库里,如下图所示:
此处的“Arbitrary Location”框填写远程库的地址,远程库的地址可以从Bonobo服务器网站中找到,操作为:在库管理页面,点击相应的远程库名字,进入所选远程库的详细信息页,如下所示:
将“Git库位置”复制到上图的“Arbitrary Location”框,点击“push”按钮,按提示输入用户名和密码,“Git Gui”就正式开始向远程库推数据,图示如下:
OK!推送成功,让我们看看远程库有哪些新东西(原先只有“info”和“pack”两个文件夹):
关于署名:
Sign your work(为你的作品署名)
To improve tracking of who did what, especially with patches that can percolate to their final resting place in the kernel through several layers of maintainers, we've introduced a "sign-off" procedure on patches that are being emailed around.(大体意思是:为了加强对谁做了什么的跟踪,我们引入了“署名”这个步骤)
因为在 Linux 的开发过程中,他们并不使用 GitHub 创造的「pull request」,而是通过(分布式的)电子邮件寄送补丁(所以 git 对邮件有着相当好的支持)。补丁寄来寄去的,就需要跟踪了,不然像 BSD 经历过的那样扯起皮来影响开发就不好了。「Signed-off-by」实际上是一个声明,你保证寄送的补丁符合「Developer's Certificate of Origin 1.1」里边那几点。
StackOverflow 上有人说了,这只是少数几个项目的要求,大部分项目并不使用 sign-off。
PS: 你如果看内核提交的话,有时能看到一个 commit 有一长列 sign-off 的。这种情况下仅仅一个 committer 和一个 author 怎么够呢?
![](https://files.cnblogs.com/files/sad-bird/红包码.bmp)