标签: git-patch

将Bitbucket pull请求应用为补丁

我在Bitbucket上有一个回购,只有我有写访问权限.

有人分叉了那个仓库,进行了更改,并从分支机构向我的仓库发出了拉动请求.

我怎样才能将拉取请求作为git补丁暂时应用于我的仓库以进行测试?

分叉回购是私有的,所以我不能把它拉下来,我也不想这样做.

在GitHub上,您只需转到拉取请求并在URL的末尾添加.patch即可下载补丁.这不适用于Bitbucket.

git bitbucket git-patch pull-request

11
推荐指数
2
解决办法
8321
查看次数

为多个重命名的两个文件创建Git补丁

我想将两个文件从一个存储库移动到另一个存储库.这些文件最初添加为:

  1. /src/init/Price.cs
  2. /tests/init/PriceTests.cs

这两个文件后来被重命名为:

  1. /src/init/PriceValue.cs
  2. /tests/init/PriceValueTests.cs

然后转到:

  1. /src/moved/PriceValue.cs
  2. /tests/moved/PriceValueTests.cs

我试图通过这种描述为这些文件创建一组补丁,但我不确定如何传递文件存在的六种不同路径.

我设法找到影响PriceValue.cs(跨重命名和移动)的所有提交ID ,但将这些ID传递给Git失败,并显示以下错误消息:

$ git format-patch -o /tmp/pricevaluepatches $(git log --all dfeeb 6966b 9f882 …)
-bash: /usr/local/bin/git: Argument list too long
Run Code Online (Sandbox Code Playgroud)

那么,我如何为此创建一组补丁,它只包含对所提到文件的更改,但是在一个重命名和每个文件的一次移动中包含它?

git patch file-rename git-patch file-move

8
推荐指数
2
解决办法
444
查看次数

我可以让git add -p显示更改,例如git diff --word-diff吗?

我在代码库中递归替换了许多单字模式.在提交之前,我需要检查每个是否有错误的替换.这将帮助我很多有git add -p使用什么样的格式--word-diff与使用git diff,其中只有改变的话被标记,而不是整条生产线.

有人在这里问了同样的问题,但也许从那时起就实施了? https://groups.google.com/forum/#!topic/git-users/7uO2OUJGvP0

git git-diff git-patch

8
推荐指数
1
解决办法
518
查看次数

使用git add --patch <filename>手动编辑

所以,我有一个我一直在分支A工作的文件,我只是准备提交它.但是,看看差异,我认为最好把它分成两个单独的提交(好吧,在这种情况下,可能是两个独立的分支).我之前使用过git add --patch来分离各个帅哥,所以我想我可以用它.问题是,我需要分开我的一个人.运行git add --patch SdA.py和使用e编辑问题块...

# Manual hunk edit mode -- see bottom for a quick guide
@@ -50,13 +50,74 @@ import PIL.Image as im

 import constant

+
+def exp_range(min=None, max=None, step=None):
+    """
+    Generate an exponentially increasing value scaled and offset such
+    that it covers the range (min, max].  Behaviour is similar to
+    exp(x), scaled such that the final value generated is equal to
+    'max'.  'step' defines the granularity of …
Run Code Online (Sandbox Code Playgroud)

git version-control git-add git-patch

7
推荐指数
1
解决办法
2603
查看次数

git拉远程主机在分离头

这一直困扰着我关于git.我有一个包含多个遥控器的存储库,我需要将修补程序应用于遥控器的主分支.所以,我尝试做:

git fetch remote1 master
git checkout remote1/master
Run Code Online (Sandbox Code Playgroud)

但是,我总是处于一个独立的头状态.检查远程主控并应用补丁的正确方法是什么?

git git-patch git-detached-head

7
推荐指数
1
解决办法
6478
查看次数

为什么git会留下修改过的文件?如何调整我的工作流程以做得更好?

这将是一个很长的,但我希望你能忍受我.

我正在尝试使用git将我的团队的源代码置于版本控制之下.在尝试找到适合我的不同方法后,我终于决定使用git format-patch功能.FWIW,该产品是在Windows中运行的ASP.NET Web应用程序,我目前正在使用msysgit.

背景:
我有一个临时服务器(镜像生产服务器),它包含所有的aspx文件.然后我在我的根文件夹中使用init-db创建了一个git repo 并执行git add .了跟踪所有文件的操作.

为了让我在我的笔记本电脑上有本地副本,我实际上从登台服务器压缩了".git"文件夹并将其FTP到我的本地机器上.将其重命名为"staging.git"并做了一个git clone staging.git webappfolder针对我的开发.

在对feature1和feature2进行2次提交后,是时候将更改应用回登台服务器了.我做了一个git format-patch -2输出到文件0001blah.patch0002blah.patch.

然后将这两个补丁文件发送到登台服务器,我git am 0001blah.patch在登台服务器上做了一个.做一个git log显示提交的经历.但是,当我这样做时git status,它表明了Changed but not updated: modified: file1.aspx.

这究竟是什么意思?我也尝试过,git apply 0001blah.patch但我得到的只是一个error" patch failed: file1.aspx: patch does not apply.

我的工作流程有问题吗?任何关于正确方法或帮助的见解都会非常有帮助.同样,修补模型对我们来说是最可行的,因为我们不会很快建立SSH服务器.

git version-control workflow patch git-patch

6
推荐指数
1
解决办法
3613
查看次数

git add -p (交互式补丁)和编辑模式给出“第 XX 行损坏的补丁”错误

我将我的更改添加到提交中git add -p,现在我想使用手动块编辑模式。

我只是有这个大块头:

# Manual hunk edit mode -- see bottom for a quick guide
@@ -46,6 +46,7 @@ function signIn(email, password) {
             }
         })
         .catch((error) => {
+            console.log(error);
             ToastAndroid.show(translations.translations.error_occurred, ToastAndroid.SHORT);
             that.setState({isLoading: false});
         });
# ---
# To remove '-' lines, make them ' ' lines (context).
# To remove '+' lines, delete them.
# Lines starting with # will be removed.
Run Code Online (Sandbox Code Playgroud)

如果我完全删除添加的行(使用console.log)然后保存并退出编辑器,我会收到此错误:

error: corrupt patch at line 12
Run Code Online (Sandbox Code Playgroud)

我完全不知道我做错了什么。

git edit git-patch

6
推荐指数
1
解决办法
1632
查看次数

git cherry-pick和git format-patch有什么区别?git是吗?

有时我需要在分支中挑选具有一定修复能力的标签,然后通过

git cherry-pick tags/myfix
Run Code Online (Sandbox Code Playgroud)

这是可行的,但是在进行“ inexact重命名检测”时,挑选樱桃的时间越来越长。

我的预感是,这样可以更快

git format-patch -k -1 --stdout tags/myfix | git am -3 -k
Run Code Online (Sandbox Code Playgroud)

实际上,事实证明,该解决方案可立即应用该修复程序,使我的分支处于与选择樱桃完全相同的状态。

现在我的问题是,摘樱桃到底有什么不同?我以为摘樱桃基本上就是这样实现的,但我一定误会了。

git git-patch git-cherry-pick git-am

6
推荐指数
2
解决办法
844
查看次数

在 Git 中手动编辑块时,如何避免以下块的“错误:第 X 行没有标题的补丁片段”?

我正在运行 Git 版本 2.18.0.windows.1 并尝试手动编辑 hunk(这是我第一次搞乱这个)。我首先分裂了一个更大的块,这是两个块中的第一个。我去编辑第一个大块如下......

老帅哥:

@@ -1,8 +1,8 @@
 Shopping List

-apples
-bananas
-yogurt
-milk
+red apples
+6 bananas
+vanilla yogurt
+2% milk
 wheat bread
 cereal
Run Code Online (Sandbox Code Playgroud)

尝试的编辑:

@@ -1,8 +1,8 @@
 Shopping List

 apples
-bananas
+6 bananas
 yogurt
-milk
+2% milk
 wheat bread
 cereal
Run Code Online (Sandbox Code Playgroud)

...但是当我保存并关闭文本编辑器 (Atom) 时,Git 给出了以下错误消息:

error: patch fragment without header at line 16: @@ -7,6 +7,6 @@
Run Code Online (Sandbox Code Playgroud)

错误消息中的行号对应于我的第二个块的行号,所以我猜测,由于我在编辑第一个块时更改了行号,所以它一定与第二个块的行号搞混了。奇怪的是,我正在学习一门课程,而讲师似乎没有任何问题。这是我正在运行的 Git 版本中的潜在错误还是我遗漏了某些内容?

注意:我确保每行前面有适当的空格/+/-,并尝试在编辑第一个块时修改行号,但无济于事。

git git-patch atom-editor

6
推荐指数
1
解决办法
4827
查看次数

如何查看将提交的文件

我在我的目录中修改了一个文件(或一些文件),并且我曾经git add从文件中暂存一些更改行,但不是所有更改的行。

我可以git diff --staged my-file用来查看更改内容的差异。 git diff --staged my-file忽略已更改但未上演的行。这是输出的示例git diff --staged my-file

diff --git a/ens/cours/ens_cours_JN.csv b/ens/cours/ens_cours_JN.csv
index dcea574..ff33469 100644
--- a/ens/cours/ens_cours_JN.csv
+++ b/ens/cours/ens_cours_JN.csv
@@ -24,6 +24,7 @@ SCALIN_E;EPITA;préparation pédagogique;JN;ING1;2020-05-13;;False;True;PT4H;;
 SCALIN_E;EPITA;préparation pédagogique;JN;ING1;2020-05-20;;False;True;PT4H;;
 SCALIN_E;EPITA;préparation pédagogique;JN;ING1;2020-05-27;;False;True;PT4H;;
 SCALIN_E;EPITA;préparation pédagogique;JN;ING1;2020-06-03;;False;True;PT4H;;
+SCALIN_E;EPITA;préparation pédagogique;JN;ING1;2020-06-03;;False;True;PT4H;;commit this line
 THLR;EPITA;préparation pédagogique;JN;ING1;2020-07-20;;False;True;PT8H;;Recording TDs
 THLR;EPITA;préparation pédagogique;JN;ING1;2020-07-21;;False;True;PT8H;;Recording TDs
 THLR;EPITA;préparation pédagogique;JN;ING1;2020-07-22;;False;True;PT8H;;Recording TDs
Run Code Online (Sandbox Code Playgroud)

问题:如何生成提交的文件的文本?我想要一个签入挂钩,以便在允许提交之前最终处理该文件。

我怀疑有一些简单的咒语使用git apply. 但是,简单使用git apply会产生以下诊断消息。

jnewton@Marcello cours % git diff --staged > ens_cours_JN.csv.patch
git diff --staged > ens_cours_JN.csv.patch
jnewton@Marcello …
Run Code Online (Sandbox Code Playgroud)

git git-patch git-apply

6
推荐指数
1
解决办法
62
查看次数