相关疑难解决方法(0)

如何"取消恢复"恢复的Git提交?

鉴于已经提交的更改已经使用commit,然后还原使用revert,那么撤消该恢复的最佳方法是什么?

理想情况下,这应该使用新的提交来完成,以便不重写历史记录.

git undo revert

421
推荐指数
7
解决办法
24万
查看次数

如何从我最新的git提交中创建补丁?

我正在寻找从最后一次提交创建补丁的神奇命令.

我的工作流程有时看起来像这样

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 patch

186
推荐指数
5
解决办法
17万
查看次数

git am和git apply有什么区别?

双方git amgit apply可以用来应用补丁.我没有看到差异.我现在看到了一个区别:git am自动提交而git apply只触及文件但不创建提交.这是唯一的区别吗?

git patch

124
推荐指数
3
解决办法
6万
查看次数

在应用补丁时,有什么方法可以解决冲突吗?

我在窗户上.

由于各种原因,我们有多个不同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)

git git-am git-apply

112
推荐指数
4
解决办法
7万
查看次数

如何将git补丁从一个存储库应用到另一个存储库?

我有两个存储库,一个是库的主要仓库,另一个是使用该库的项目.

如果我修复了subservient项目,我想要一个简单的方法将该补丁应用到上游.

每个存储库中文件的位置都不同.

  • 主要回购: www.playdar.org/static/playdar.js
  • 项目: playlick.com/lib/playdar.js

我尝试git format-patch -- lib/playdar.js在playlick项目上使用,然后git am在主playdar repo上,但补丁文件中的不同文件位置引发了错误.

有没有一种简单的方法可以将给定文件中给定提交的补丁应用到其他地方的另一个任意文件?

对于奖励积分,如果您要应用补丁的文件不在git存储库中,该怎么办?

git patch git-submodules git-patch

77
推荐指数
2
解决办法
4万
查看次数

Github - Pull Request,忽略一些文件更改

当我在GitHub上执行Pull Request(对抗master分支)时,我们可以忽略一些文件更改,例如

  • 我们在分支'release'中有一个名为'fileA'的文件,我们在'master'中有相同的文件,但我们在分支'release'中的'fileA'中做了一些更改
  • 当我们执行Pull请求时,我们是否可以忽略'fileA'中的更改,不要让它合并为'master'.

git github pull-request

24
推荐指数
2
解决办法
3万
查看次数

我如何为github贡献补丁?

我不想分叉项目,但我想提交补丁以供包含; 我应该在问题队列上执行此操作吗?

github

17
推荐指数
1
解决办法
4356
查看次数

如果git-am失败并且"索引中不存在"该怎么办?

当我尝试使用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 git-am

15
推荐指数
1
解决办法
1万
查看次数

git:跨多个提交生成单个补丁

这种情况:

  1. 我们基于现有的开源git repo(例如source-repo)创建了一个“私有” repo(例如our-repo)。

  2. 我们一直在开发代码,并已将大约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”?

git patch

7
推荐指数
3
解决办法
2320
查看次数

GitHub-从模板存储库中提取更改

我已经在GitHub中创建了一个模板存储库,然后基于该模板创建了一些存储库。自创建以来,我想将这些模板中的模板进行更新。

这可能吗?

github

7
推荐指数
5
解决办法
550
查看次数

git format-patch 用于对文件的所有提交

我想为对文件/文件夹所做的所有提交获取补丁。

我可以通过 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 的补丁,我将失去补丁的顺序。有没有更好的解决办法

git format-patch

5
推荐指数
2
解决办法
3379
查看次数

我可以使用与base和compare分支相同的分支创建pull请求吗?

我有一个拥有主人和分支的github仓库.我们一直在开发分支,然后每次推出一个版本,我们将分支的更改合并到master中,然后再次在分支上开始下一个开发阶段.现在,我们被要求在分支上使用pull请求修复错误.所以问题是,如何单独执行分支上的所有pull请求,而不涉及master?

更具体地说,我有一个修改了bug的branchA,然后我提交并推送到branchA repo,然后我转到我的github repo网页并尝试通过将基本分支和比较分支指定为'branchA来执行拉取请求',然后github说:没有什么可比的.您需要使用两个不同的分支名称来获得有效的比较.这肯定是有道理的,所以我问是否有可能通过拉取请求以某种方式比较错误修复之前和之后的SAME分支.

git github pull-request

4
推荐指数
3
解决办法
6764
查看次数