假设我的 git 存储库中有一个分支“工作”和一个分支“想法”。
我通常在“工作”分支中处理我的 marvelous_file.cpp,但有时我想同时打开我的“想法”分支中的 marvelous_file.cpp。
我不想看看这两个文件之间有什么区别,而是从“ideas”分支中获取代码片段,然后将它们复制并粘贴到“work”分支的文件中。
这可能吗?如果没有,我可以将“ideas”中的文件签入“work”,但名称不同吗?
假设我的 git 存储库中有一个分支“工作”和一个分支“想法”。
我通常在“工作”分支中处理我的 marvelous_file.cpp,但有时我想同时打开我的“想法”分支中的 marvelous_file.cpp。
我不想看看这两个文件之间有什么区别,而是从“ideas”分支中获取代码片段,然后将它们复制并粘贴到“work”分支的文件中。
这可能吗?如果没有,我可以将“ideas”中的文件签入“work”,但名称不同吗?
你可以用它git show
来做到这一点:
git show ideas:marvelous_file.cpp
这将在终端中正确显示。如果您希望将其作为文件,只需将其通过管道传输到文件中,例如:
git show ideas:marvelous_file.cpp > ideas.cpp
如果您首先在本地提交更改,这些步骤将正常工作:
git checkout ideas -- path/to/your/file.txt
将获取您想要的文件并替换您在工作文件夹中的文件。您可以对整个目录或整个工作树执行此操作:
git checkout ideas -- .
将抓取整个工作树
git checkou ideas -- dir/with/cool/stuff
将抓取目录的所有内容。
现在你可以
git reset -p
系统地丢弃您不想要的更改。如果它们已经放入您将要处理的文件中,这可能更容易获取您想要的片段。