我在Bitbucket上有一个回购,只有我有写访问权限.
有人分叉了那个仓库,进行了更改,并从分支机构向我的仓库发出了拉动请求.
我怎样才能将拉取请求作为git补丁暂时应用于我的仓库以进行测试?
分叉回购是私有的,所以我不能把它拉下来,我也不想这样做.
在GitHub上,您只需转到拉取请求并在URL的末尾添加.patch即可下载补丁.这不适用于Bitbucket.
我想将两个文件从一个存储库移动到另一个存储库.这些文件最初添加为:
/src/init/Price.cs/tests/init/PriceTests.cs这两个文件后来被重命名为:
/src/init/PriceValue.cs/tests/init/PriceValueTests.cs然后转到:
/src/moved/PriceValue.cs/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 add -p使用什么样的格式--word-diff与使用git diff,其中只有改变的话被标记,而不是整条生产线.
有人在这里问了同样的问题,但也许从那时起就实施了? https://groups.google.com/forum/#!topic/git-users/7uO2OUJGvP0
所以,我有一个我一直在分支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.我有一个包含多个遥控器的存储库,我需要将修补程序应用于遥控器的主分支.所以,我尝试做:
git fetch remote1 master
git checkout remote1/master
Run Code Online (Sandbox Code Playgroud)
但是,我总是处于一个独立的头状态.检查远程主控并应用补丁的正确方法是什么?
这将是一个很长的,但我希望你能忍受我.
我正在尝试使用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.patch和0002blah.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 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 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 版本 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 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 ×10
git-patch ×10
patch ×2
atom-editor ×1
bitbucket ×1
edit ×1
file-move ×1
file-rename ×1
git-add ×1
git-am ×1
git-apply ×1
git-diff ×1
pull-request ×1
workflow ×1