Git 如何在进行更改后伪造文件合并?

Git 如何在进行更改后伪造文件合并?,git,Git,我已经在我的项目中粘贴了另一个版本的文件,它有添加和删除。我想假装合并到当前提交的版本中,这样我就可以看到和解决冲突,而不是用肉眼比较文件 如何将修改后的文件工作树合并到同一文件的头版本中 config/routes.rb # (1) commited version HEAD config/routes.rb # (2) modified version in working tree 我已将朋友发送给我的文件中的2 config/routes.rb粘贴到我现有的routes文件1中 谢谢为

我已经在我的项目中粘贴了另一个版本的文件,它有添加和删除。我想假装合并到当前提交的版本中,这样我就可以看到和解决冲突,而不是用肉眼比较文件

如何将修改后的文件工作树合并到同一文件的头版本中

config/routes.rb # (1) commited version HEAD
config/routes.rb # (2) modified version in working tree
我已将朋友发送给我的文件中的2 config/routes.rb粘贴到我现有的routes文件1中


谢谢

为了真正合并两个文件,您需要一个从中派生出它们的基本版本。否则,计算机无法区分一个文件中的添加和另一个文件中的删除,因此无法区分哪个版本较新,也无法进行任何自动更改,即每次更改都会产生冲突。例如:

file1:
...
here is a line
this line was added in file 1, or was it deleted in file 2?
here's the next line
...

file2:
...
here is a line
here's the next line
...
如果没有基本文件,就无法判断这里发生了什么,因此不清楚file1或file2是否是正确的版本

如果您在git中签入了一个基本版本,比如在commit 123abc,那么最简单的方法是:

确保你的树是干净的,也就是说,把新版本移到一边,然后重新检查你的头版本 执行git分支主题\u merge\u friends\u更改123abc以在包含基本版本的提交处创建临时分支 签出分支:git签出主题\u merge\u friends\u changes-注意,这可以与上一步结合使用-b标志进行签出 现在,将新文件移到适当的位置,然后git提交它 切换回主机:git签出主机 和git合并主题\u合并\u朋友\u更改 或者,您可以跳过提交和合并,而是将基本版本(称为base.txt)和两个更高版本的mine.txt和friends.txt复制到某处,然后运行git merge文件mine.txt base.txt friends.txt,将朋友的更改合并到mine.txt中,而不实际生成和提交或新分支

最后,如果没有基本文件,最好是手动检查和编辑两个文件之间的差异。你也可以

将git diff的输出写入一个文件,并手动编辑结果以获得所需的文件,当然,您需要删除diff添加到文件一致区域的缩进 使用visual diff工具-Emacs有一个很好的visual diff模式,例如,M-x ediff合并文件,让您可以并排查看每个更改,并通过按键选择所需的版本,许多其他编辑器将具有类似的功能
为了真正合并两个文件,您需要一个从中派生它们的基本版本。否则,计算机无法区分一个文件中的添加和另一个文件中的删除,因此无法区分哪个版本较新,也无法进行任何自动更改,即每次更改都会产生冲突。例如:

file1:
...
here is a line
this line was added in file 1, or was it deleted in file 2?
here's the next line
...

file2:
...
here is a line
here's the next line
...
如果没有基本文件,就无法判断这里发生了什么,因此不清楚file1或file2是否是正确的版本

如果您在git中签入了一个基本版本,比如在commit 123abc,那么最简单的方法是:

确保你的树是干净的,也就是说,把新版本移到一边,然后重新检查你的头版本 执行git分支主题\u merge\u friends\u更改123abc以在包含基本版本的提交处创建临时分支 签出分支:git签出主题\u merge\u friends\u changes-注意,这可以与上一步结合使用-b标志进行签出 现在,将新文件移到适当的位置,然后git提交它 切换回主机:git签出主机 和git合并主题\u合并\u朋友\u更改 或者,您可以跳过提交和合并,而是将基本版本(称为base.txt)和两个更高版本的mine.txt和friends.txt复制到某处,然后运行git merge文件mine.txt base.txt friends.txt,将朋友的更改合并到mine.txt中,而不实际生成和提交或新分支

最后,如果没有基本文件,最好是手动检查和编辑两个文件之间的差异。你也可以

将git diff的输出写入一个文件,并手动编辑结果以获得所需的文件,当然,您需要删除diff添加到文件一致区域的缩进 使用visual diff工具-Emacs有一个很好的visual diff模式,例如,M-x ediff合并文件,让您可以并排查看每个更改,并通过按键选择所需的版本,许多其他编辑器将具有类似的功能
您好,有没有办法合并隐藏中的文件。。当我做git stash pop时,它说文件已经存在,所以我需要尝试合并它。您好,有没有办法从stash合并文件。。当我做git stash pop时,它说文件已经存在,所以我需要尝试合并它。