且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何将单个文件的版本从一个git分支复制到另一个分支?

更新时间:2023-11-28 07:52:03

您希望文件最终到达的分支:

  git checkout otherbranch myfile.txt 

通用公式:

  git checkout&lt ; commit_hash> < relative_path_to_file_or_dir> 
git checkout< remote_name> /< branch_name> &LT; file_or_dir&GT;

一些注释(来自评论):


  • 使用提交散列可以从任何提交中提取文件
  • 这适用于文件和目录

  • 覆盖文件 myfile.txt mydir

  • 通配符不起作用,但相对路径可以
  • 可以指定多个路径



替代方案:

  git show commit_id:path / to / file> path / to / file 


I've got two branches that are fully merged together.

However, after the merge is done, I realise that one file has been messed up by the merge (someone else did an auto-format, gah), and it would just be easier to change to the new version in the other branch, and then re-insert my one line change after bringing it over into my branch.

So what's the easiest way in git to do this?

Run this from the branch where you want the file to end up:

git checkout otherbranch myfile.txt

General formulas:

git checkout <commit_hash> <relative_path_to_file_or_dir>
git checkout <remote_name>/<branch_name> <file_or_dir>

Some notes (from comments):

  • Using the commit hash you can pull files from any commit
  • This works for files and directories
  • overwrites the file myfile.txt and mydir
  • Wildcards don't work, but relative paths do
  • Multiple paths can be specified

an alternative:

git show commit_id:path/to/file > path/to/file