我是git的新手,并且有一个与GitKraken一起使用的git存储库。 在该存储库中,我有多个分支,可以在各个分支之间移动,以便在必要时进行修改。
我现在处在一个我不想提交的分支上进行一些大型修改的情况,但是与此同时,我想对另一个分支进行一些较小的修改。
我曾经使用过TFS,在那里我可以签出到另一个文件夹。
我试图只复制文件夹,而我的第一印象是这应该可以工作。...
但是,我在网上看到一些言论,说我应该克隆一个存储库。
git版本低于2.5,所以我不能使用Git-worktree。
仅复制文件夹可以吗?这会产生意想不到的效果吗?
答案 0 :(得分:1)
是的,如果您从结帐的根目录复制整个文件夹,包括隐藏的.git
文件夹,那么您可以独立地更改每个工作副本。每个都包含自己的存储库对象副本,它们的行为就像您运行了两个单独的克隆一样。
但是正如评论中所讨论的,这不一定是一个好用例:将较大的更改提交到本地分支将更容易(并且磁盘空间效率更高),以便您可以随后进行切换并进行其他更改。这没有真正的缺点。如果您确实想稍后删除该临时提交,那么也很容易做到。
但是,如果您要执行此操作,那么您可能想要
git repack -ad
,以使对象树中要复制的文件更少git clone --reference
,这可能会更节省磁盘空间.git
文件夹复制到新的工作副本中,然后再git reset --hard
来检查那里的所有文件。答案 1 :(得分:0)
您可能想看看git stashing是否对您有用。我不建议复制到新文件夹。主要是因为我不知道这是否有可能,而且我从未将其作为建议。克隆也应该可以工作,但是听起来好像您有兴趣搁置/存储而不是在签出branch2之前在分支1中提交更改。