Git 我怎样才能看到一个经过编辑的帅哥的原始形态?

Git 我怎样才能看到一个经过编辑的帅哥的原始形态?,git,diff,git-add,Git,Diff,Git Add,git add-p仅用于准备未提交工作的一部分。通常,这只是一个确认/否认某个帅哥是否应该加入的问题。然而,有时我需要拆分一个比s选项更好的大块头 输入e,这将打开一个编辑器,在该编辑器中可以根据喜好更改差异 不幸的是,我经常弄错,所以当我做完后,git说 error: patch failed: src/foo.bar:1234 error: src/foo.bar: patch does not apply 它让我可以再次打开这个大块头,但是很难看到这个差异最初是什么样子的/它需要什么样子

git add-p
仅用于准备未提交工作的一部分。通常,这只是一个确认/否认某个帅哥是否应该加入的问题。然而,有时我需要拆分一个比s选项更好的大块头

输入e,这将打开一个编辑器,在该编辑器中可以根据喜好更改差异

不幸的是,我经常弄错,所以当我做完后,git说

error: patch failed: src/foo.bar:1234
error: src/foo.bar: patch does not apply
它让我可以再次打开这个大块头,但是很难看到这个差异最初是什么样子的/它需要什么样子才能应用


有什么简单的方法可以看到这一点,而无需返回并完全重新执行
git add-p

如果您的修补程序不适用,您应该看到这一行

Your edited hunk does not apply. Edit again (saying "no" discards!) [y/n]?
然后,只需按n键,然后按k键(返回“查看前一个未确定的大块头”)

我将搜索一篇好文章,解释如何正确编辑帅哥,并在这里发布链接


更新(2018-01-17): git文档中有一个很好的部分,您可以在其中找到手动文件重新合并,其中说明:

首先,我们进入合并冲突状态。然后我们想要得到我的文件版本的副本,它们的版本(来自我们合并的分支)和公共版本(来自双方分支的地方)。然后,我们要修复他们的一方或我们的一方,并再次尝试仅为这个文件合并

获取三个文件版本实际上相当容易。Git将所有这些版本存储在“stages”下的索引中,每个stages都有与之关联的编号。第1阶段是共同的祖先,第2阶段是你的版本,第3阶段是从合并头,你正在合并的版本(“他们的”)

您可以使用gitshow命令和特殊语法提取冲突文件的每个版本的副本

$ git show :1:hello.rb > hello.common.rb
$ git show :2:hello.rb > hello.ours.rb
$ git show :3:hello.rb > hello.theirs.rb

这有帮助吗?

如果您的修补程序不适用,您应该看到这一行

Your edited hunk does not apply. Edit again (saying "no" discards!) [y/n]?
然后,只需按n键,然后按k键(返回“查看前一个未确定的大块头”)

我将搜索一篇好文章,解释如何正确编辑帅哥,并在这里发布链接


更新(2018-01-17): git文档中有一个很好的部分,您可以在其中找到手动文件重新合并,其中说明:

首先,我们进入合并冲突状态。然后我们想要得到我的文件版本的副本,它们的版本(来自我们合并的分支)和公共版本(来自双方分支的地方)。然后,我们要修复他们的一方或我们的一方,并再次尝试仅为这个文件合并

获取三个文件版本实际上相当容易。Git将所有这些版本存储在“stages”下的索引中,每个stages都有与之关联的编号。第1阶段是共同的祖先,第2阶段是你的版本,第3阶段是从合并头,你正在合并的版本(“他们的”)

您可以使用gitshow命令和特殊语法提取冲突文件的每个版本的副本

$ git show :1:hello.rb > hello.common.rb
$ git show :2:hello.rb > hello.ours.rb
$ git show :3:hello.rb > hello.theirs.rb
这有用吗