我有一个由 git 管理的个人存储库。在那里,我有一个小项目,其中包含我已经提交的跟踪文件和一些我想在不久的将来添加的未跟踪文件。
那些未跟踪的文件位于我的本地计算机中。我没有备份。我想知道从我的开发分支中为未跟踪的文件创建新分支是否是一种好习惯(我有 master、develop 以及我正在开发的每个功能)。
git checkout -b myuntrackedfiles develop
git add <files> (each untracked file)
git commit -m "Backup"
git push origin myuntrackedfiles.
然后,当我想要 merge 其中一个未跟踪的文件时,我只需将它们从未跟踪的存储库复制到所需的分支
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
并在本地删除未跟踪的文件。
问题是:是否存在一种更好、更有效的方法来完成此过程,或者这个方法足够好?
最佳答案
Git 不是备份工具。最佳实践是提交项目运行所需的文件。但请注意,无需修改这些文件即可让其他开发人员运行或您在不同的计算机上运行。此类更改应与可以在代码外部设置的配置隔离,例如通过环境变量或应用程序在运行时可以读取的配置文件。
您应该避免提交大文件,例如应用程序使用的数据。相反,您可以使用 Drop Box、OneDrive 或 Google Drive 等工具备份这些内容。
关于Git 备份未跟踪的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64613056/