我最近遇到了一个问题,我需要选择一些文件来使用 git 推送到远程分支。我的具体用例是在每次提交中只创建/修改一个文件,我需要以编程方式推送选定的文件(处于最新状态)。我做了一些研究,发现了两个接近我需要做的技巧:
- 我可以使用cherry-pick 将某些提交挑选到一个新分支中并将该分支合并到远程主控中。
- 我可以使用 rebase -i 重新排序提交,我假设我可以重新排序,以便与这些选定文件相关的提交都在前面,我可以推送该列表中的最后一个提交。
对于cherry-pick来说,这有点令人困惑。我可以创建一个没有所有脏提交的新分支,然后将文件提交选择到该分支中。但是,如果该文件已经存在于分支中,它总是会引发我必须手动修复的冲突,这并不理想。
对于 rebase -i,从我读过的内容来看,我需要转到一个交互式编辑器,我需要在其中手动重新排序提交,然后我可以执行 git push origin 以将所有内容应用到提交-SHA(重新排序) . 不理想,因为我必须做手工工作。
总的来说,我认为 rebase 更接近我的需要,但我找不到一种简单的方法来以编程方式完成它。谁能想出一些可以完成我任务的git类比操作?