1

我有一个由 git 管理的个人存储库。在那里,我有一个小项目,其中包含我已经提交的跟踪文件和一些我想在不久的将来添加的未跟踪文件。

那些未跟踪的文件在我的本地计算机中。我没有备份。我想知道从我的开发分支中为未跟踪的文件创建新分支是否是一种好习惯(我有 master、develop 和我正在处理的每个功能)。

git checkout -b myuntrackedfiles develop
git add <files> (each untracked file)
git commit -m "Backup"
git push origin myuntrackedfiles.

然后,当我想合并其中一个未跟踪的文件时,我只需将它们从未跟踪的存储库复制到所需的分支

git checkout myfeature-nnn
git show myuntrackedfiles:myfile > myfile
git show myuntrackedfiles:myfile2 > myfile2
...
git commit -m "Adding untracked files"

git push origin feature-nnn

最后,我可以将它们从未跟踪的分支中删除

    git checkout myuntrackedfiles
    git reset --soft HEAD~1
    git reset HEAD myfile1
    git reset HEAD myfile2
    git commit --amend
    git push origin myuntrackedfiles

并在本地删除未跟踪的文件。

问题是:是否存在一种更好、更有效的方法来完成这个过程,或者这个方法是否足够好?

4

2 回答 2

2

Git 不是备份工具。最佳实践是提交项目运行所需的文件。请注意,这些文件不需要修改即可让其他开发人员运行或让您在不同的机器上运行。此类更改应隔离到可以在代码之外设置的配置,例如通过环境变量或应用程序在运行时可以读取的配置文件。

您应该避免提交大文件,例如应用程序使用的数据。相反,您可以使用 Drop Box、OneDrive 或 Google Drive 等工具备份这些内容。

于 2020-10-30T17:26:02.577 回答
1

好吧,因为问题是未跟踪的文件...

$ git ls-files --others --exclude-standard -z |\
xargs -0 tar rvf ~/backup-untracked.zip

来源 opensource.com

于 2020-11-11T17:53:06.800 回答