我有一个名为app.js的主分支。我在一个实验分支上对这个文件进行了更改。

我只想将实验中对app.js所做的更改应用到master分支。


当前回答

git checkout master               -go to the master branch first
git checkout <your-branch> -- <your-file> --copy your file data from your branch.

git show <your-branch>:path/to/<your-file> 

希望这对你有所帮助。如果你有任何疑问,请告诉我。

其他回答

或者,如果您想要其他分支的所有文件:

git checkout <branch name> -- .

如果您想要来自特定提交(任何分支)的文件,请说06f8251f

git checkout 06f8251f path_to_file

例如,在Windows上:

git checkout 06f8251f C:\A\B\C\D\file.h

查看github上的文件并从那里取出

这是一种务实的方法,不会直接回答OP,但有些人发现很有用:

如果有问题的分支位于GitHub上,那么您可以使用GitHub提供的许多工具中的任何一个导航到所需的分支和文件,然后单击“原始”查看纯文本,并(可选)根据需要复制和粘贴文本。

我喜欢这种方法,因为它允许您在将远程文件拉到本地计算机之前查看其完整性。

一切都简单多了,用git结账。

假设您在master分支上,要从新功能分支获取app.js,请执行以下操作:

git checkout new-feature path/to/app.js

// note that there is no leading slash in the path!

这将为您带来所需文件的内容。您可以像往常一样,使用sha1的一部分而不是新的功能分支名称来获取特定提交中的文件。

注意:新功能需要是本地分支,而不是远程分支。

另一种方法是创建具有差异的补丁,并将其应用于主分支例如。假设您开始使用app.js之前的最后一次提交是00000aaaa,而包含所需版本的提交是00000bbbbb

你在实验分支上运行这个:

git diff 00000aaaaa 00000bbbbb app.js > ~/app_changes.git

这将为app.js创建一个包含这两个提交之间所有差异的文件,您可以在任何地方应用该文件。您可以将该文件保存在项目之外的任何位置

然后,在master中,您只需运行:

git apply ~/app_changes.git

现在,您将看到项目中的更改,就像您手动进行了更改一样。