只有pull git提交引用特定文件

时间:2018-01-17 09:01:36

标签: git

我当前的一个相当大的项目(另一个项目的分支)的工作流程要求我经常挑选某些提交,并在一个子目录中轻松找到文件。

理想情况下。我可以通过引用引用特定文件的最新提交(以及它的所有依赖项来简化工作流程。显然。我想要完整的,未经更改的提交)。

我"拉文件A"应引入引用对fileA的更改的所有新提交。

有办法以某种方式这样做吗?

预期结果:从远程存储库中提取/合并引用指定文件的所有新提交。

当前工作流程:浏览文件的历史记录,注释(设置)提交SHA1,git cherry-pick <SHA1>

2 个答案:

答案 0 :(得分:0)

分支会想到这一点。

分支的目的很简单:拥有一系列关于特定方向的特定开发流程的提交。然后,如果希望在该分支中完成的开发成为主项目的一部分,则合并分支。否则它将被删除。

最好的办法是在包含该文件的分支上执行git pull

答案 1 :(得分:0)

这个解决方案非常接近我想要的(只有文件夹而不是文件。虽然,正如我刚刚发现的那样,这可能是一个更加理智的方法。)

https://stackoverflow.com/a/32082356/3628813

  

这将按逆时间顺序为您提供工具/我的工具(尚未在featureA中)中提交的提交列表:

     

git log --no-merges featureA...master tools/my-tool

     

换句话说:

     

git log --no-merges source_branch...dest_branch my/firstpath   my/secondpath [...]

     

要按时间顺序获得所需的提交,您需要   首先反转输入行的顺序(例如使用tail -r或   tac),然后隔离提交哈希的列(例如使用cut):

     

git log --format=oneline --no-merges featureA...master tools/my-tool \       | tail -r \       | cut -d " " -f 1

     

要立即完成整个操作,请执行以下操作:

     

git cherry-pick $(git log --format=oneline --no-merges   featureA...master tools/my-tool | tail -r | cut -d " " -f 1)