我是git新手,我有一个git存储库,我在GitKraken中使用它。在这个存储库中,我有多个分支,可以从一个分支移动到另一个分支,以便在必要时进行修改。
我现在的情况是,我将对1个分支进行一些大的修改,但我不想提交,但同时我想对另一个分支进行一些小的修改。
我习惯于使用TFS,在那里我可以将分支签出到另一个文件夹。
我试着只复制文件夹,我的第一印象是这应该可以工作……
但是,我在网上看到的评论说,我应该克隆一个存储库。
git版本低于2.5,所以我不能使用Git-worktree。
是否可以直接复制文件夹,或者这是否会产生意想不到的效果?
发布于 2019-01-10 01:03:42
可以,如果从检出的根目录复制整个文件夹,包括隐藏的.git文件夹,则可以单独对每个工作副本进行更改。每个都包含它们自己的存储库对象副本,它们的行为就像您运行了两个单独的克隆一样。
但是,正如评论中所讨论的,这不一定是一个好的用例:将您的大型更改提交到本地分支会更容易(也更节省磁盘空间),这样您就可以切换并进行其他更改。这并没有什么真正的缺点;如果您确实想在以后删除临时提交,那么也很容易做到。
但是,如果您要这样做,那么您可能想要
git repack -ad,以便对象树中要复制的文件更少git clone --reference,这可能会稍微大一些您需要干净的工作副本您可以创建一个新的工作副本文件夹,只将隐藏的.git文件夹复制到新的工作副本中,然后使用git reset --hard签出那里的所有文件。发布于 2019-01-10 00:36:16
您可能想看看git stashing是否适用于您。我不建议复制到新文件夹。主要是因为我不知道这是不是可能的,我从来没有把它作为一个建议。克隆也应该可以工作,但听起来您对搁置/存储与在签出branch2之前在branch1中提交更改感兴趣。
https://stackoverflow.com/questions/54114455
复制相似问题