Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何更新开源代码的修改版本?_Php_Git_Github - Fatal编程技术网

Php 如何更新开源代码的修改版本?

Php 如何更新开源代码的修改版本?,php,git,github,Php,Git,Github,我从GitHub下载了一个开源PHP代码,然后在本地对其进行了一些更改 现在主要的源代码在GitHub中更新了 我想知道更新代码的最简单方法是什么,并保留我所做的更改。(由于这些更新将不断发生,我想知道it的永久解决方案和行业标准) 我不想在GitHub中公开我的代码 编辑:代码以zip文件的形式下载,而不是以Git克隆的形式下载。如果您已将代码从GitHub克隆到本地计算机,则原始存储库仍应设置为远程,您应该能够简单地Git拉取更改并将其合并到本地代码中 如果您将代码作为zip存档下载并对

我从GitHub下载了一个开源PHP代码,然后在本地对其进行了一些更改

现在主要的源代码在GitHub中更新了

我想知道更新代码的最简单方法是什么,并保留我所做的更改。(由于这些更新将不断发生,我想知道it的永久解决方案和行业标准)

我不想在GitHub中公开我的代码


编辑:代码以zip文件的形式下载,而不是以Git克隆的形式下载。

如果您已将代码从GitHub克隆到本地计算机,则原始存储库仍应设置为远程,您应该能够简单地
Git拉取更改并将其合并到本地代码中



如果您将代码作为zip存档下载并对其进行更改,那么这将非常困难。更新本地代码的最简单方法可能是手动将更改合并到本地代码库中。

如果您已将代码从GitHub克隆到本地计算机上,然后,原始存储库仍应设置为远程,并且您应该能够简单地
git拉取更改并将其合并到本地代码中



如果您将代码作为zip存档下载并对其进行更改,那么这将非常困难。更新本地代码的最简单方法可能是手动将更改合并到本地代码库中。

如果运气好,库作者可以通过公共属性或方法、类扩展或其他方法进行自定义

我有一个Php库,需要一些个性化,我可以通过公共属性/方法来实现

这是一个非常简单的例子:

<?php

class Foo {
    public $bar = 'big';
    public $baz = 'fat';
    public $bat = 'mamma';
}
或者您可以扩展原始类:

class MyFoo extends Foo
{
    public $bat = 'man';
}

$foo = new MyFoo;
这两种方法都允许在不影响代码的情况下更新原始类。尽可能避免编辑/分叉原始库

如果必须编辑库代码。库使用Git进行版本控制,您可以克隆原始代码(Git clone)并为更改创建一个新分支。并在必要时记录(提交)和应用(合并)这些更改到刷新的代码库中。Git使这比管理和应用您自己对库代码的更改(差异/补丁)更容易


如果您可以识别您开始使用的库的版本(可能是一个标记的版本),并且可以像以前一样重新获得代码,那么您可以将其与修改后的代码进行比较,并创建一个或多个更改集。您可能能够像开始之前一样git签出库的一个版本,创建一个新的分支(从那里开始),应用您的更改,并尝试合并回更新的库。

如果运气好,库作者可以通过公共属性或方法,或通过类扩展或其他方法进行自定义

我有一个Php库,需要一些个性化,我可以通过公共属性/方法来实现

这是一个非常简单的例子:

<?php

class Foo {
    public $bar = 'big';
    public $baz = 'fat';
    public $bat = 'mamma';
}
或者您可以扩展原始类:

class MyFoo extends Foo
{
    public $bat = 'man';
}

$foo = new MyFoo;
这两种方法都允许在不影响代码的情况下更新原始类。尽可能避免编辑/分叉原始库

如果必须编辑库代码。库使用Git进行版本控制,您可以克隆原始代码(Git clone)并为更改创建一个新分支。并在必要时记录(提交)和应用(合并)这些更改到刷新的代码库中。Git使这比管理和应用您自己对库代码的更改(差异/补丁)更容易


如果您可以识别您开始使用的库的版本(可能是一个标记的版本),并且可以像以前一样重新获得代码,那么您可以将其与修改后的代码进行比较,并创建一个或多个更改集。您可能能够像开始之前一样git签出库的一个版本,创建一个新的分支(从那里开始),应用您的更改,然后尝试合并回更新的库。

…您可能还想阅读相关内容。如果您在本地更改代码,然后从主存储库中提取新的更改,那么很可能会发生冲突……您可能还想了解一下。如果您在本地更改代码,然后从主存储库中提取新的更改,很可能会发生冲突。您是如何从github下载代码的?我下载了zip文件。不幸的是,没有git克隆。但我也想知道将来做这件事的正确方法是什么。你是如何从github下载代码的?我下载了zip文件。不幸的是,没有git克隆。但是我也想知道将来做这件事的正确方法是什么。Tnx@Progrock,我将像以前一样获得Git版本的库,并创建新的分支。是否有一种简单的方法可以将修改后的代码与之进行比较并创建更改集?有git命令吗?我正在Mac上使用Atlassian SourceTree。在我获得更改集之后,我会将它们合并到最新版本,对吗?如果您确实从特定快照创建了一个分支,这很简单。将修改后的文件复制到签出的分支上。然后执行一个
git状态
。Git将为您提供更改的摘要。然后,您可以添加并提交它们(如果愿意,可以逐段提交)。我想让你自己熟悉Git,这里有一些很棒的教程。一个diff工具,可以让你比较文件。Git有自己的:
Git diff
.Tnx@Progrock,我会像以前一样获得库的Git版本,并创建新的分支。是否有一种简单的方法可以将修改后的代码与之进行比较并创建更改集?有git命令吗?我正在Mac上使用Atlassian SourceTree。在我得到更改集之后,我将它们合并到最新版本r