使用未提交的更改来存储存储库的存档

问题描述 投票:17回答:4

如何使用git archive创建当前存储库的存档,包括本地未提交的更改?

git
4个回答
27
投票

我知道这是旧的,但我想我找到了解决方案。

跑:

stashName=`git stash create`;
git archive <options> $stashName

由于git想要一个可靠的提交来进行存档,我们可以使用git stash进行“一次性”提交。 create命令只是创建存储提交(不重置您的工作目录或将其推送到存储堆栈)并返回它的哈希值。

如果你担心悬空提交的空间,你可以用git gc --prune=now清理它。否则,只需等待2周,它就会消失。


14
投票

为了我的目的改进nevsan的答案 - 在任何情况下(已提交或未提交)存档最新代码:

uploadStash=`git stash create`; git archive -o code_outgoing.zip ${uploadStash:-HEAD}

6
投票

git ls-files的另一个解决方案:

git ls-files -z | xargs -0 tar -czvf archive.tar.gz

2
投票

如果您没有提交更改,那么git archive将无法帮助您。如果您只想要工作区的快照,tar可能是您最好的选择。

© www.soinside.com 2019 - 2024. All rights reserved.