如何使用git创建补丁? -- version-control 领域 和 community-official-site 领域 drupal 相关 的问题

How can I create a patch using Git?


10
vote

问题

中文

我在 drupal.org 上找到了一个问题。我想提交解决方案。如何使用Git创建补丁,以便我可以将其提交作为可能的修复?

英文原文

I have found an issue on drupal.org that I would like to submit an solution for. How can I create a patch using git so that I can submit it as a possible fix?

     

回答列表

13
 
vote
vote
最佳答案
 

每个Drupal.org项目都有一个标签标题'版本控制',单击它,它将带您到一个带有git指令的页面,包括标题为"创建修补程序" 的部分。

请参阅此处是一个示例: http://drupal.org/project/wysiwyg_fields/git-说明

下面的代码从d.o复制。说明。

  git checkout -b [description]-[issue-number]   

进行更改。请注意问题相关的提交消息的语法更改。有关详细信息,请参阅提交消息页面。

  git add -A git commit -m "Issue #[issue number] by [comma-separated usernames]: [Short summary of the change]."   

卷起贴片。

  git status git fetch origin git rebase origin/6.x-1.x git format-patch origin/6.x-1.x --stdout > [description]-[issue-number]-[comment-number].patch   
 

Every Drupal.org project has a tab title 'Version control', click on it and it will take you to a page with Git instructions, including a section titled 'Creating a patch'.

See here for an example: http://drupal.org/project/wysiwyg_fields/git-instructions

Code below is copied from the D.o. instructions.

git checkout -b [description]-[issue-number] 

Make your changes. Note the change in syntax for issue-related commit messages. See the Commit messages page for details.

git add -A git commit -m "Issue #[issue number] by [comma-separated usernames]: [Short summary of the change]." 

Roll the patch.

git status git fetch origin git rebase origin/6.x-1.x git format-patch origin/6.x-1.x --stdout > [description]-[issue-number]-[comment-number].patch 
 
 
0
 
vote

如果使用phpstorm或Intellij,您可以执行以下操作:

  • 确保您的分支是最新的(提交所有内容)
  • 使更改(修复错误)
  • 转到VCS>创建补丁

    转到VCS>创建补丁

  • 按照步骤进行操作,并保存您更喜欢它的位置。

    按照步骤,保存在您喜欢它的位置

 

If you use PhpStorm or IntelliJ you can do the following:

  • Make sure your branch is up-to-date (commit everything)
  • Make the changes (fix the bug)
  • Go to VCS > Create patch

    Go to VCS > Create patch

  • Follow the steps and save where you prefer it.

    Follow the steps and save where you prefer it

 
 
0
 
vote

我不会超越东西。最后,您真正需要的是一个DEV版本的模块,Init一个空的Git repo中的内容,清理工作树(提交所有内容,它在本地),进行更改,然后运行以下命令。

  $ git diff > [short_description]-[issue-number]-[comment-number].patch   

在一个逐步的steb的逐步中,可能归结为下列。
  1. 有一个局部笨拙运行,你可以乱用。
  2. 将模块的DEV版本下载到本地Drupal的Contron模块文件夹中。
  3. 现在
  4. 现在 cd 进入模块的目录和 99887665 ,然后 git add . git commit -m "Clean tree" 与一个干净的状态从。
  5. 执行代码更改,并使用本地Drupal检查一切是否正常工作,并在最后运行上面的 git diff 命令。
  6. 上传Drupal.org上的补丁并将问题设置为"需要审查" 。
 

I wouldn't overcomplicate things. In the end all you really need is a dev version of the module, init an empty Git repo in it, clean the working tree (commit everything, it's just locally), make your changes and then run the following command.

$ git diff > [short_description]-[issue-number]-[comment-number].patch 

In a steb-by-step that maybe boils down to the following.

  1. Have a local Drupal running you can mess around with.
  2. Download a dev version of the module into your local Drupal's contrib modules folder.
  3. Now cd into the module's directory and git init, then git add . and git commit -m "Clean tree" to have a clean state to start from.
  4. Do your code changes, and use the local Drupal to check if everything's working and in the end run the git diff command from above.
  5. Upload the patch on drupal.org and set the issue to "Needs review".
 
 

相关问题

4  如何将Drupal节点从一个安装迁移到另一个安装,保留修订历史记录?  ( How to migrate drupal nodes from one installation to another preserving revisio ) 
有没有好的办法从一个Drupal安装导出一组节点,包括节点修订历史记录,然后将这些合并到另一个Drupal安装,包括修订历史记录? 我熟悉模块,诸如节点导出和备份和迁移 ......但<代码> Node Export 不保留修订历史记录,和 Backup and Migrate 的没有按't允许合并(只有完整的表替换...

11  将网站代码保存在git中的最佳方法是什么是在同一存储库中加入核心并在同一存储库中进行贡献?  ( What is the best way to keep your site code in git and pull in core and contrib ) 
后退当Drupal处于CVS时,我在Git存储库中有我的网站,然后通过CVS中拉核心并通过CV。两个系统愉快地共存,我可以跟踪对所有内容的更改,并使修补程序添加到Control模块中。现在有Git我不确定是否只需下载Contrien and Core并检查它进入我的网站的Git存储库,或者也许使用子模块? 我想知道...

5  内容类型的版本控制  ( Version control of a content type ) 
我想创建一个内容类型。我的问题是这种内容类型会经常更改(每6个月,我会添加一些字段,我将删除其他字段)。 你会怎么做?我想过几种选择: 1)为每个版本创建一个"版本" 字段,默认值为我所做的每个版本。使用"hook_form_alter" 我会隐藏或者我会根据版本显示字段。 2)另一个选项是为每个版本的新内容类型...

3  醉汉制作和Drupalcode补丁  ( Drush make and drupalcode patches ) 
我想下载一个项目的稳定版本并应用一个 patch 。此修补程序未提交,而是直接应用于项目。我有以下醉汉制作文件(只是一个测试片段) #items1 这告诉我修补程序失败了。如果我下载文件并使用patch -p0,它将正确修补。 任何人都知道为什么这不起作用,以及如何解决它? ...

3  如何提交对主题的更改?  ( How can i commit changes to a theme ) 
我在omega-7.x-3.0-alpha1上工作,并在RTL模式下添加了一些固定的流体样式表。 如何将它们提交到Drupal.org存储库? ...

2  使用CVS更改控制  ( Change control using cvs ) 
我们希望使用CVS(可悲的Git和SVN)管理我们的Drupal 7安装。在设置存储库时,您是否有任何指针进行思考? 我们的土地铺设如下: 我们的员工包括UI开发人员,后端开发人员,管理员和DBA。 开始,我们将安装各种模块(例如域,LDAP,工作流和视图)。我们将在路上编写一些自定义模块。我们还在寻找实施自己的...

7  醉酒使在Github托管的自定义模块  ( Drush make for a custom module hosted at github ) 
我试图通过醉酒制作在github.com上输入自定义模块,但我得到 Could not retrieve version information for custom_migration Non-existent project type on project techarena_migration ...

11  醉汉删除.git文件夹  ( Drush make removes git folders ) 
a 愚蠢的感觉与苏打制作和github 我发现,所有的.git文件夹(Git用于记录历史记录,配置,原点位置等)被疏浚制作删除,我之前已经听过了这一点,但我没有遇到自己,因为我不是维护制作文件。 特别疏浚使得删除.git文件夹,如果您使用--debug选项运行它,则可以看到它 Executing: rm -r...

8  在没有断开SVN的情况下更新模块?  ( Updating modules with drush without breaking svn ) 
对,这一直在打破我两天。我无法在任何地方得到答案! 我在我的服务器上有4.4。我通过unduddle.com使用svn。我有一个网站,我想更新很多模块。我想只是要更新代码,然后检查它的工作(DB更新不是此时的关注)然后提交相关代码。 它曾经是Drush DL将简单地将模块代码下载在旧模块的顶部,而不会删除它。这已不再...

20  使用DRUSH更新模块的更新版本(忽略点/推荐版本,无需垃圾版本控制)  ( Updating to a newer dev version of a module using drush ignoring point recommen ) 
[nb这个问题是关闭的,而是单独/进一步,是我的早期问题,这里 我一直在使用吹嘘,但每一个经常我都会被困扰。目前,我真的不确定如何走这个。 方案:目前,该网站在过去使用DEV发布,日期。与此同时,没有创建Point Release,但较新的开发释放有。所以我们有类似的东西: Reroute Email ...

0  我如何重新安装我从Git Repo中退出的网站?  ( How can i re install a site i pulled in from a git repo ) 
我将整个网站克隆到git。我无法安装它。 在foo.com/sites文件夹中有几个文件夹。 settings.php文件位于文件夹dev.foo.com中而不是默认文件夹中。(我知道这是多路的。) 我在我的主机文件中添加了一行 127.0.0.1 dev.foo.com 我已将st...

41  我需要将一个网站带到版本控制,并设置连续集成环境  ( I need to bring a site to version control and set up the continuous integration ) 
我是一个有一个笨拙的6x项目的企业家,开始足够小,不需要版本控制(每个开发人员),但现在我确信没有它就没有办法。在JIRA有广泛的文档,配备了覆盖着所有内容的书面用户故事。我介绍了一些关于如何完成的,并提出以下计划 - 使用模块从数据库中单独的站点代码 上下文 功能 strongarm p...

4  如何使用模板部署同时发生视图设置更改  ( How to make view setting changes happen simultaneously with deployment of a temp ) 
让视图设置随着模板的部署而同时发生。我在哪里可以解决这个问题? 是有什么东西将视图设置放入版本控制,如subversion? ...

4  在Git中管理Drupal Core,用于Aegir平台  ( Managing drupal core in git for aegir platforms ) 
我们已开始开发一个使用Drupal 7.2部署网站的平台。该平台在Git中管理。但是,正如我们不触摸核心,托管核心的最佳地点是什么? 核心也应该在自己的仓库中获得git吗?或者,DEV团队应该在开发平台时更新核心,并使用平台推送核心吗? 谢谢! ...

3  使用DVC设置理想的多个存储库DRUPAL网站版本控制  ( Setting up the ideal multiple repository drupal site version control with a dvcs ) 
我有一个即将推出的项目将使用drupal,我一直在向我的头上进行追求,虽然我想出一个愿望清单,但我不知道如何实际以这种方式设置源控制存储库。虽然我使用Drupal这一点,但希望这个设置可以扩展到其他CMS系统。 理想情况下,我正在使用Mercurial /窑,因为这就是我的店铺使用的东西,但我宁愿拥有比使用的理想工作...

2  使用Git将核心和模块保持最新状态  ( Using git to keep core and modules up to date ) 
我正在寻找一种使用git来拉动核心和模块的方法。让我们说,例如,我从Drupal Git克隆Drupal Core,并提交自己的Git Repo;然后,我提取一堆模块,也提交给自己的git repo。 这是可能的吗?我可以在从其他存储库中签出的存储库中的子文件夹吗?我仍然可以使用drupal保持我的代码最新吗?也许我...

0  如何找到具有依赖的所有耳多模块  ( How to find all drupal modules which has dependence ) 
我想知道是否可以找到依赖于例如子表单模块的所有贡献模块。 如果您使用模块,并且希望创建您的信息,此信息可能很有用,因为您不知道已存在相同的模块。 ...

2  Drupal版本控制 - 专业开发  ( Drupal version control professional development ) 
我已被分配在Drupal中开发一个站点。我将独自努力。是否需要版本控制?如果是的话,这对于Drupal最佳?我该如何设置开发过程? (例如:在本地制作一个测试网站,然后达到它)。提前谢谢。 ...

2  列出Drupal修订  ( List drupal revisions ) 
我刚刚发现了Drupal的修订功能。我尝试了它,新的修订版存储在数据库中。我期望在编辑节点页面上获取修订版本。但我没有看到这样的东西。 是否可以在UI内部列出和切换修订版? ...

2  我需要一个Drupal工作流解决方案,在那里我可以编辑直播/发布节点并保存,而无需进行即将到达的编辑  ( I need a drupal workflow solution where i can edit live published nodes and save ) 
我需要一个模块或方法,可以允许发布的节点在admin中编辑并保存,而不会导致更改,直到它提交。 网站示例: http://bit.ly/p70f7e 1. User with EDIT permission logs in and edits this page/node - They make a copy...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.