Sen*_*ful 4 git github git-lfs
我正在尝试将所有内容添加MyProject/Frameworks/到git-lfs(大文件存储)中。我不确定递归匹配文件夹下所有文件和文件夹的正确格式Frameworks是什么。这个答案说的是正确的格式git lfs track "MyProject/Frameworks/**",但是Atlassian的帮助文件说我应该使用git lfs track "MyProject/Frameworks/"。我都尝试过,但它们都没有git lfs用于存储。它尝试直接上传文件。
当然,我很想知道正确的格式,但是更重要的是,在尝试将更改推送到github之前,我想确认匹配项和文件确实可以正常工作。这将允许我迭代并尝试新事物。
我看到两个相关的命令可能会有所帮助:git lfs status和git lfs ls-files。目前尚不清楚我应该使用哪一个,以及我应该寻找什么输出。例如,当我运行时git lfs status,它向我显示了很多文件Git LFS objects to be committed,使我认为它们将被添加到Git LFS中。但是,在尝试推送到GitHub.com之后,我意识到事实并非如此。如果有帮助,这些文件的输出(Git: edee1ad)在每个文件名之后总会有类似的内容。
当我尝试使用时,git lfs ls-files我不确定git add在文件,提交后还是在推送文件后是否需要运行它。在大多数情况下,它只是向我显示空白输出。
本质上,问题是:如果配置git lfs正确,在尝试提交/推送之前git lfs status应该使用什么工具(例如),以及应该寻找什么输出?
注意:请不要仅回答如何匹配所有递归文件的问题,因为这将对我有一次帮助(此特定情况),而不是让我反复尝试新事物(任何情况)。
TL; DR
如果一切设置正确,则可以通过以下方法验证git LFS是否可以正常工作:
git add 有问题的文件。git lfs status并确保所涉及的文件出现在下方Git LFS objects to be committed,并确保其LFS值在括号中;要么git lfs ls-files并确保有问题的文件出现在此输出中。?? 重要提示:运行后
git lfs track,必须运行git add以刷新文件状态,然后再调用git lfs status或git lfs ls-files。否则,您将看到这些命令的不相关输出。
另外,为了进行记录,看起来git lfs track "MyProject/Frameworks/**"是递归匹配的正确方法。
设置和测试方法:
git lfs track "*.lfs"。这产生了.gitattributes。放开舞台。Test.lfs。放开舞台。测试:
git lfs status:没有文件名输出
$ git lfs status
On branch master
Git LFS objects to be pushed to origin/master:
Git LFS objects to be committed:
Git LFS objects not staged for commit:
$
Run Code Online (Sandbox Code Playgroud)git lfs ls-files:无输出
$ git lfs ls-files
$
Run Code Online (Sandbox Code Playgroud)添加git add Test.lfs。
测试:
git lfs status:Test.lfs现在将带有LFS后缀。
$ git lfs status
On branch master
Git LFS objects to be pushed to origin/master:
Git LFS objects to be committed:
Test.lfs (LFS: 2ab9f1e)
Git LFS objects not staged for commit:
$
Run Code Online (Sandbox Code Playgroud)git lfs ls-files:Test.lfs现在将列出。
$ git lfs ls-files
2ab9f1e447 * Test.lfs
$
Run Code Online (Sandbox Code Playgroud)提交更改。
测试:
git lfs status:Test.lfs将移至“待推送”部分。它的后缀是一堆数字/字母。
$ git lfs status
On branch master
Git LFS objects to be pushed to origin/master:
Test.lfs (2ab9f1e44720efb7a26553e06b667a270320efb3e906553b3f9e0702538a2b3f)
Git LFS objects to be committed:
Git LFS objects not staged for commit:
$
Run Code Online (Sandbox Code Playgroud)git lfs ls-files:Test.lfs将继续列出。
$ git lfs ls-files
2ab9f1e447 * Test.lfs
$
Run Code Online (Sandbox Code Playgroud)测试:
git lfs status:不再输出文件名
$ git lfs status
On branch master
Git LFS objects to be pushed to origin/master:
Git LFS objects to be committed:
Git LFS objects not staged for commit:
$
Run Code Online (Sandbox Code Playgroud)git lfs ls-files:继续输出跟踪的文件
$ git lfs ls-files
2ab9f1e447 * Test.lfs
$
Run Code Online (Sandbox Code Playgroud)结论:
Git LFS objects not staged for commit部分似乎误导了它,因为它从不显示任何文件,即使LFS应当跟踪的文件也是如此。Git LFS objects to be committed错误的下方。它不是Git LFS对象。您可以确定它实际上不是Git LFS对象的方法是查看它的结束方式。如果以它结尾,(Git: 111111111)则不会提交给LFS。git lfs ls-files在git lfs status确定的东西将是混帐LFS与否的一部分。git add一种奇怪的方式归档,从而导致Git LFS不会考虑本应明确匹配的内容。解决方案是取消暂存文件,然后重新暂存它们。| 归档时间: |
|
| 查看次数: |
1548 次 |
| 最近记录: |