联系我们联系我们
电子邮箱电子邮箱

如何使用Git克隆,编译和优化开源的黑客工具

[复制链接]
  • TA的每日心情
    擦汗
    2017-2-5 16:25
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    knight 发表于 2017-1-11 15:35:14
    444 4
    如何使用Git克隆,编译和优化开源的黑客工具

    1.11.jpg

    将Mac设置为黑客工具,是时候开始看工具箱。 我们的第一个工具箱是Git,将在本教程中使用。

    Git是目前世界上使用最广泛的版本控制系统(VCS),主要是由于GitHub。 版本控制系统随时间记录对文件或文件集的更改,以便以后可以调用特定版本。 Git是版本控制的分布式形式,其中每个系统,不只是中央位置,具有完整的存储库。

    在GitHub上托管的项目或您自己的个人远程存储库,在克隆时将被完全镜像。 这意味着,当你下拉一个仓库,你得到它包含的所有文件,你可以进行更改和提交他们回到你自己的项目,fork克隆不同的版本,或者只是克隆和编译。 您甚至可以将更改推送到主项目的阶段。

    许多开源项目依赖于GitHub,甚至Linux内核。 许多流行的黑客工具也托管他们的源代码在GitHub上。 如果您还没有帐户,则应创建一个帐户。

    Git内置到macOS中,所以我们不必下载任何东西。 我将在这篇文章中讨论裸露的基础知识,刚好足以让我们离开地面修改一些代码并维护我们自己的本地存储库。 通过使用Git,我们将能够克隆流行的开源的黑客工具,编译它们,甚至进行更改或推送错误修复!

    Step 1 克隆一些源代码(git clone)


    1.111.jpg

    我们有它。 我现在有一个harvester的副本为我自己使用。 但是,我缺少一个必需的依赖性 - Python请求库。 因为我们在从GitHub克隆时处理源代码,所以通常不能满足依赖性。 如果我们从一个包管理器,如Homebrew,这个包将包括依赖关系。 在这种情况下,我只需要安装pip(Python库的包管理器),并拉下相应的依赖项。

    Step 2 初始化一个新的仓库(git init)

    git init命令允许我们将一个目录初始化为一个Git仓库,允许我们对开发中的项目进行本地版本控制。 我创建了一个简单的项目,并将目录初始化为本地repo:git init

    1.112.jpg

    当你初始化一个目录,Git会创建一个.git文件夹跟踪你的项目的更改。 目前,Git不会跟踪我的项目文件夹中的任何文件,因为我还没有将它们添加到轨道列表。

    Step 3 添加跟踪文件(git add)

    现在我有一个初始化文件夹,是时候添加文件进行跟踪。 我将这样做:git add *

    1.113.jpg

    我们可以看到Git正在跟踪我的文件。 当我对文件进行更改时,Git跟踪这些更改。 当我对代码感到满意时,我可以提交更改(请参阅下一步)。 在此期间,Git跟踪我正在做的工作。

    1.114.jpg

    Git文件的生命周期从添加文件开始。 然后它跟踪该文件的更改,直到提交该文件。 一旦文件提交,它将返回到未修改的状态。 提交本质上是说你对文件中的代码感到满意。 然后,循环在未修改的状态下再次开始。

    Step 4 提交源代码(git commit)

    一旦我对我的文件所在的状态感到满意,我将使用以下命令提交更改:git commit -a -m 'changed some core UI components'

    Git提交部分告诉Git,对文件所做的修改已经准备好了。 -a标志告诉Git提交所有当前跟踪的文件,而-m标志是要包含这些更改的消息。

    1.115.jpg

    Step 5看看你怎么回购(git状态)

    有时候,我们离开项目很长时间,其他时候,只是很难跟踪发生了什么。 幸运的是,我们可以找到存储库的状态:git status

    我在存储库的所有阶段中都一直在使用命令,以显示Git在幕后做什么。 此命令显示未跟踪的文件,已更改但尚未提交的文件以及我的工作分支。

    Step 6 添加和测试新功能(git branch)

    分支允许您添加或测试新功能,而不更改稳定的代码库。 例如,我的hackThePlanet.py已被提交,它目前是稳定的,但我想添加一些新的实验功能,而不破坏任何稳定版本。 在这种情况下,我将使用命令:git branch experimental

    这将创建一个新的项目分支。 接下来,我切换到实验分支:git checkout experimental

    我也可以用命令做到这一点:git checkout -b experimental

    此命令检出使用-b标志指定的新分支。

    1.116.jpg

    现在我有一个新的分支,我将添加我的实验功能,让一切工作,并将更改提交到分支。 如果我与一个团队合作,可能会有多个分支的稳定版本 - 一个分支为新的UI元素,另一个分支与错误修复,以及可能另一个分支,其中有一些新的功能添加。 在这些分支中,更多的人可能分支他们在特定的片断上工作。

    Step 7 添加这些功能或固定到主(git merge)

    因为一切都对我们的改变很好,是时候把我的分支合并在一起。 首先,我检查主分支使用:git checkout master

    接下来,我将使用命令将我的主控与我的实验分支合并:git merge experimental

    1.117.jpg

    现在主分支包含新的,不再实验的代码更改。 我可以随时回去查看实验分支,并继续添加新功能,或创建新的分支。

    这就是你如何使用Git为你的Repos

    这是一个非常基本的介绍,使用Git。 有很多强大的功能,我没有在这里覆盖。 我只谈到了在你的机器上使用你自己的本地存储库所需要的东西。 Git能够这么多,特别是当与GitHub结合使用时。

    虽然有些人可能不会使用这些功能,重要的是要知道他们在那里。 有时在笔测试中,您将必须修改PoC(概念证明)或获取一段代码在您的系统上工作。 如果你发现自己在做这种工作,这些基础知识将有助于保持工作流程有序。 和大多数命令一样,git是非常好的文档。 命令像git branch --help将打开特定于命令的手册页。 我建议阅读这些。



    回复

    使用道具 举报

    HoxTon、夔龍 发表于 2017-1-11 15:46:45
    厉害了,我的哥,崇拜你很久了
    回复 支持 反对

    使用道具 举报

    大老李 发表于 2017-1-12 10:02:54
    吊炸天呐    试试。
    回复 支持 反对

    使用道具 举报

    mark6688 发表于 2017-1-12 22:10:06
    提示: 作者被禁止或删除 内容自动屏蔽
    回复 支持 反对

    使用道具 举报

    analyst1981 发表于 2017-2-24 14:01:44 来自手机
    收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    发表新帖

    小黑屋|手机版|Archiver|华盟论坛 ( 京ICP证070028号 )

    Powered by 华盟网 X 8.0  © 2001-2013 Comsenz Inc.  华夏黑客同盟