如何签出多个提交并将代码版本复制到另一个目录?

2024-10-03 17:21:11 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的csv文件,其中包含CommitId:

CommitId
d38f7b334856ed4007fb3ec0f8a5f7499ee2f2b8
d38f7b334856ed4007fb3ec0f8a5f7499ee2f2b8
d38f7b334856ed4007fb3ec0f8a5f7499ee2f2b8
4bb968a47ce00279d6051df95bd782650700179e
c3d7ec38417ecff03d1cd3be0163e6ce07578eb3
00568c9886e739d6b5dd61b4a4326d598552fb6f
00568c9886e739d6b5dd61b4a4326d598552fb6f
00568c9886e739d6b5dd61b4a4326d598552fb6f
00568c9886e739d6b5dd61b4a4326d598552fb6f
6e062098453febbfb0169cd0af56f70f2e3fc77f
63f658918c2f4b851b0d0fffbffab4df0cfe13ca

我需要签出每个提交并将代码的版本复制到另一个目录中,因此对于这个示例,我需要一个目录中的11个版本的代码。你知道吗

我为一次提交尝试了以下代码:

import os
from distutils.dir_util import copy_tree
path='C:/Users/AQ42770/Desktop/RefactoringMiner/bin/BTC-e-client-for-Android'
os.chdir(path)
commande1='git chekcout  d38f7b334856ed4007fb3ec0f8a5f7499ee2f2b8'
os.system(commande1) 
copy_tree("C:/Users/AQ42770/Desktop/RefactoringMiner/bin/BTC-e-client-for-Android", "C:/Users/AQ42770/Desktop/test")

第一个问题是:copy_tree()将文件复制到目标文件夹而不是目录

你知道吗第二:是的找不到一种方法来为5月1日的所有提交执行此操作

谢谢你的帮助!你知道吗


Tags: 文件path代码import版本目录treeos
2条回答

你需要git cherry-pick。你知道吗

git cherry-pick A..B其中A和B是您的两个提交(A是旧提交,B是新提交)。你知道吗

您可以使用^{},而不是签出。你知道吗

更准确地说:^{}
重复<commit2>C:/Users/AQ42770/Desktop/test2,依此类推。你知道吗

这样,您只有一个克隆,但有11个工作树,都有正确的内容。你知道吗

相关问题 更多 >