Git从另一个分支复制文件而不进行暂存

时间:2019-05-07 19:46:52

标签: git

我已经found如何将批量批发的文件从一个分支复制到另一个分支:

  

编辑,请注意,如果您认为此问题与this重复,请注意,这是我上面链接的问题^^,并且   以下内容解释了我想要的不同功能。

sourceSets.main.java

但是,此解决方案已经分阶段进行了更改:

$ git checkout directory/somefile.php feature-B

但是我不想添加所有更改。我想做一个$ git status On branch feature-A Your branch is up-to-date with 'origin/feature-A'. Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: directory/somefile.php 并接受大部分但不是全部的更改。我想要的是这个

add -p

当然,我可以$ git status On branch feature-A Your branch is up-to-date with 'origin/feature-A'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: directory/somefile.php no changes added to commit (use "git add" and/or "git commit -a") 撤消更改,但是我想第一次获得想要的东西,而无需第二步。

如何在不进行暂存的情况下从另一个分支复制文件?

2 个答案:

答案 0 :(得分:3)

您可以使用git show然后进行重定向...虽然不是很优雅

git show feature-B:directory/somefile.php > directory/somefile.php

答案 1 :(得分:0)

您可以使用git restore

git restore --source feature-B directory/somefile.php

我没有传递任何选项来说明应将文件还原到哪里,并且通过错误指出它是工作目录(没有索引/临时区域)。来自文档:

> -W
> --worktree
> -S
> --staged
> 
>     Specify the restore location. If neither option is specified, by default the working tree is restored. Specifying --staged will only restore the index. Specifying both restores both.