备份 git 存储库以及当前暂存和未暂存更改的有效方法?
Efficient way to back up a git repository along with the current staged & unstaged changes?
我正在寻找一种更有效/更快速的方法来在开始制作疯狂的 git 命令之前制作 git 项目的临时副本。是的,git 从不删除东西,它们可以恢复,但有时需要花很多时间才能弄清楚,尤其是当你有未提交的更改时,所以制作副本更容易,如果事情不顺利,然后从那里复制。
我想复制 git 存储库本身,工作目录中的更改,以保留暂存和未暂存的内容,但忽略任何被忽略的内容。git,因为这些文件由构建系统生成,可以从源代码中重新生成。
我尝试了 rsync -avz project project.2 --filter ":- .gitignore"
,但显然它并没有复制所有内容,在新制作的副本中执行 git status
之后,git 报告文件丢失,并且一些类型发生了变化 - 这很奇怪,但这就是结果...
我不知道它是否更有效,但它很容易做到...
备份
git stash --include-untracked
(或用 shorthand -u
)
或 git stash --all
存储所有文件,具体取决于您要保存的内容...
git gc
(非强制但为了使复制更快)
- Copy/rsync 只有
.git
文件夹(现在包含能够以完全相同的状态恢复工作目录的所有内容)在另一个空目录中
恢复
在备份目录中或复制回 .git
文件夹后:
git reset --hard Head
# 恢复所有文件
git stash pop
# 恢复未提交的更改
我正在寻找一种更有效/更快速的方法来在开始制作疯狂的 git 命令之前制作 git 项目的临时副本。是的,git 从不删除东西,它们可以恢复,但有时需要花很多时间才能弄清楚,尤其是当你有未提交的更改时,所以制作副本更容易,如果事情不顺利,然后从那里复制。
我想复制 git 存储库本身,工作目录中的更改,以保留暂存和未暂存的内容,但忽略任何被忽略的内容。git,因为这些文件由构建系统生成,可以从源代码中重新生成。
我尝试了 rsync -avz project project.2 --filter ":- .gitignore"
,但显然它并没有复制所有内容,在新制作的副本中执行 git status
之后,git 报告文件丢失,并且一些类型发生了变化 - 这很奇怪,但这就是结果...
我不知道它是否更有效,但它很容易做到...
备份
git stash --include-untracked
(或用 shorthand-u
)
或 git stash --all
存储所有文件,具体取决于您要保存的内容...
git gc
(非强制但为了使复制更快)- Copy/rsync 只有
.git
文件夹(现在包含能够以完全相同的状态恢复工作目录的所有内容)在另一个空目录中
恢复
在备份目录中或复制回 .git
文件夹后:
git reset --hard Head
# 恢复所有文件git stash pop
# 恢复未提交的更改