我有一个名为app.js的主分支。我在一个实验分支上对这个文件进行了更改。
我只想将实验中对app.js所做的更改应用到master分支。
我有一个名为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> -- .
git checkout branch_name file_name
例子:
git checkout master App.java
如果分支名称中有句点,则此操作将不起作用。
git checkout "fix.june" alive.html
error: pathspec 'fix.june' did not match any file(s) known to git.
要从另一个分支签出文件,只需简单的一行命令:
git checkout branch C:\path\to\file.cs
如果您想要多个文件
git checkout branch C:\path\to\file1.cs C:\path\to\file2.cs
另一种方法是创建具有差异的补丁,并将其应用于主分支例如。假设您开始使用app.js之前的最后一次提交是00000aaaa,而包含所需版本的提交是00000bbbbb
你在实验分支上运行这个:
git diff 00000aaaaa 00000bbbbb app.js > ~/app_changes.git
这将为app.js创建一个包含这两个提交之间所有差异的文件,您可以在任何地方应用该文件。您可以将该文件保存在项目之外的任何位置
然后,在master中,您只需运行:
git apply ~/app_changes.git
现在,您将看到项目中的更改,就像您手动进行了更改一样。
要从另一个分支恢复文件,只需使用工作分支中的以下命令:
git restore -s my-other-branch -- ./path/to/file
-s标志是source的缩写,即要从中提取文件的分支。
(所选的答案信息量很大,但也有点令人难以理解。)