鉴于已经提交的更改已经使用commit,然后还原使用revert,那么撤消该恢复的最佳方法是什么?
理想情况下,这应该使用新的提交来完成,以便不重写历史记录.
我正在寻找从最后一次提交创建补丁的神奇命令.
我的工作流程有时看起来像这样
vi some.txt
git add some.txt
git commit -m "some change"
Run Code Online (Sandbox Code Playgroud)
现在我只想写
git create-patch-from-last-commit-to-file SOME-PATCH0001.patch
Run Code Online (Sandbox Code Playgroud)
但是我应该把它放在那里而不是create-patch-from-last-commit-to-file?
双方git am并git apply可以用来应用补丁.我没有看到差异.我现在看到了一个区别:git am自动提交而git apply只触及文件但不创建提交.这是唯一的区别吗?
我在窗户上.
由于各种原因,我们有多个不同svn分支的git实例.
很多时候我想修复存储库A中的问题,生成补丁并将其应用到存储库B.除非存在冲突,否则这种方法很好.
重新定位时,我只需右键单击该文件夹并使用tortioseGit并选择解析选项.这带来了一个很好的gui,让我解决我的冲突.
有没有办法用拒绝的补丁块完成这个?
这是我目前创建/应用补丁的方法
git format-patch master --stdout > c:\\patch\\file.patch
git apply --reject --ignore-space-change --ignore-whitespace c:\\patch\\file.patch
Run Code Online (Sandbox Code Playgroud) 我有两个存储库,一个是库的主要仓库,另一个是使用该库的项目.
如果我修复了subservient项目,我想要一个简单的方法将该补丁应用到上游.
每个存储库中文件的位置都不同.
www.playdar.org/static/playdar.jsplaylick.com/lib/playdar.js我尝试git format-patch -- lib/playdar.js在playlick项目上使用,然后git am在主playdar repo上,但补丁文件中的不同文件位置引发了错误.
有没有一种简单的方法可以将给定文件中给定提交的补丁应用到其他地方的另一个任意文件?
对于奖励积分,如果您要应用补丁的文件不在git存储库中,该怎么办?
当我在GitHub上执行Pull Request(对抗master分支)时,我们可以忽略一些文件更改,例如
当我尝试使用git am应用它时,我有一个补丁,它给出了以下输出
Checking patch old/filename...
error: old/filename: does not exist in index
Run Code Online (Sandbox Code Playgroud)
在补丁中,old/filename实际上被移动到new/filename,但似乎源树中已经缺少原始文件.
那么什么是错误以及如何解决/解决它?它可以被忽略(使用--reject等)吗?
这种情况:
我们基于现有的开源git repo(例如source-repo)创建了一个“私有” repo(例如our-repo)。
我们一直在开发代码,并已将大约20个合并到我们的仓库中。因此,仓库从“ State_Initial”移到“ State_Current”。
现在,出于业务原因,我们希望将所有开发工作移交给第三方。基于某些法律问题,唯一的选择是我们为他们提供所有更改的“单个”补丁文件。那是“ State_Initial”和“ State_Current”之间的压缩补丁。
我环顾四周,发现
git format-patch -X
Run Code Online (Sandbox Code Playgroud)
但是,它会生成“ n”个.patch文件。
有没有一种创建单个补丁文件的方法,以便如果我们基于“ source-repo”创建一个仓库并应用该补丁,它将带我们进入“ State_Current”?
我已经在GitHub中创建了一个模板存储库,然后基于该模板创建了一些存储库。自创建以来,我想将这些模板中的模板进行更新。
这可能吗?
我想为对文件/文件夹所做的所有提交获取补丁。
我可以通过 git log --format="%H"-- path/to/folder
有没有办法从这个列表中生成补丁。
[编辑]:
下面的代码部分解决了我的问题
for c in `git log --format="%H" -- path/to/file`;do
git format-patch "$c^1".."$c" -o patches ;
done
因为 format-patch 是单独调用的,所以我会得到所有编号为 0001-commit-text.patch 的补丁,我将失去补丁的顺序。有没有更好的解决办法
我有一个拥有主人和分支的github仓库.我们一直在开发分支,然后每次推出一个版本,我们将分支的更改合并到master中,然后再次在分支上开始下一个开发阶段.现在,我们被要求在分支上使用pull请求修复错误.所以问题是,如何单独执行分支上的所有pull请求,而不涉及master?
更具体地说,我有一个修改了bug的branchA,然后我提交并推送到branchA repo,然后我转到我的github repo网页并尝试通过将基本分支和比较分支指定为'branchA来执行拉取请求',然后github说:没有什么可比的.您需要使用两个不同的分支名称来获得有效的比较.这肯定是有道理的,所以我问是否有可能通过拉取请求以某种方式比较错误修复之前和之后的SAME分支.
git ×10
github ×4
patch ×4
git-am ×2
pull-request ×2
format-patch ×1
git-apply ×1
git-patch ×1
revert ×1
undo ×1