Lfs Sourcetree

SourceTree 3.4.3 08 February 2021 Changes. Security fix for embedded git lfs; Fixed Sourcetree hanging on scrolling down Bookmarks view; Fixed ssh-agent taking too much CPU. 仓库用户将需要安装 Git LFS 命令行客户端(参考这里其实更好),或支持 Git LFS 的 GUI 客户端,例如Sourcetree。 安装 Git LFS. 有三种简单的方式来安装 Git LFS: a. 用你最喜欢的软件包管理器来安装它。git-lfs 软件包在 Homebrew,MacPorts,dnf 和packagecloud中都是可用的. SourceTreeを最新版にアップデート; SourceTreeをアンインストール⇒再度インストール; 内蔵Gitのアップデート(バージョン 2.18.0/LibGit2Sharp 0.24.0+ git - lfs v2.4.2) 解決法がありましたらご教授ください。. For me, all this started when SourceTree crashed during a push and I forced a machine reboot, and when that happens, lfs doesn't know how to deal with it, so it just gets stuck in this loop where it's trying to update, but it can't read the corrupted data.

  • Status:Needs Triage(View Workflow)
  • Resolution: Unresolved
  • Fix Version/s: None
  • Labels:
  • Environment:
    Hide

    We have been testing out LFS and found that using the 32 bit version of Git/LFS fails when using the normal Git commands to clone or checkout a very large object (about 1.6 GB). This works fine if we use the lfs versions of these commands. Since the embedded version of Git that comes with SourceTree is 32 bit, a checkout operation always fails for this file. Here's the error message:

    git -c diff.mnemonicprefix=false -c core.quotepath=false checkout master
    fatal: Out of memory, realloc failed
    Error downloading object: xsec/gauge_repeat.cdb (92a538e6307508275374f99b5c0a404cecde66287ab95e264eb203d65d58860a)

    Errors logged to C:reposimages.gitlfsobjectslogs20161214T184317.4387021.log
    Use `git lfs logs last` to view the log.

    Completed with errors, see above.

    I have found that using the 32 bit Git client the following commands will always fail for this repo on the same file.
    git clone, git checkout, git reset

    However running git lfs clone, git lfs checkout works fine. The issue is with the way that the non-lfs files stream the large file through the smudge filter and using the lfs versions just open and write the file without having to stream the full contents.

    Since I'm running on a 64 bit OS (Windows 10), I would have thought that the 64 bit Git client would have been installed.

    Task

    I think there are two issues here.
    1. The 32 bit version of the Git client is used for the embedded Git.
    2. A checkout operation in SourceTree uses 'git checkout' instead of 'git lfs checkout'.

    Show
    We have been testing out LFS and found that using the 32 bit version of Git/LFS fails when using the normal Git commands to clone or checkout a very large object (about 1.6 GB). This works fine if we use the lfs versions of these commands. Since the embedded version of Git that comes with SourceTree is 32 bit, a checkout operation always fails for this file. Here's the error message: git -c diff.mnemonicprefix=false -c core.quotepath=false checkout master fatal: Out of memory, realloc failed Error downloading object: xsec/gauge_repeat.cdb (92a538e6307508275374f99b5c0a404cecde66287ab95e264eb203d65d58860a) Errors logged to C:reposimages.gitlfsobjectslogs20161214T184317.4387021.log Use `git lfs logs last` to view the log. Completed with errors, see above. I have found that using the 32 bit Git client the following commands will always fail for this repo on the same file. git clone, git checkout, git reset However running git lfs clone, git lfs checkout works fine. The issue is with the way that the non-lfs files stream the large file through the smudge filter and using the lfs versions just open and write the file without having to stream the full contents. Since I'm running on a 64 bit OS (Windows 10), I would have thought that the 64 bit Git client would have been installed. I think there are two issues here. 1. The 32 bit version of the Git client is used for the embedded Git. 2. A checkout operation in SourceTree uses 'git checkout' instead of 'git lfs checkout'.
Assignee:
Unassigned
Reporter:
Renato Rudnicki (Inactive)
Sourcetree
Votes:
1Vote for this issue
Watchers:
2Start watching this issue

Repository Management

CMD+0

Opens the Repository Browser window.

CMD+SHIFT+H

Show the Repository Browser and select the Remote section.

Prompts to add selected repositories to the Repository Browser.

Motor

UI Customization

CMD+SHIFT+K

Toggle the current repository's sidebar (branches, tags, and more.)

CMD+CTRL+W

Toggle the current repository's command history to view details.

CMD+1

Switch to the file browser and commit preparation area.

CMD+2

Switch to the primary commit history browser area.

CMD+3

Switch to the commit history search area.

Toggle the visibility of branch labels in commit history graphs for all repositories.

Toggle the visibility of tag labels in commit history graphs for all repositories.

Toggle the visibility of the Build Status column in the History view for the current repository.

Git Actions

CMD+SHIFT+F

Retrieve the current repository's branches, tags, and history from the remote server.

Start interactively updating a branch's content to align with another.

Connect another repository to act like a descendent of the current repository, instead of a remote dependency.

CMD+SHIFT+-

Remove the selected item(s) from the staging area prior to committing.

Mercurial Actions

Lfs Sourcetree Global

CMD+SHIFT+U

Retrieve the current repository's state from the remote server.

Save an archival copy of the repository.

Repository Actions

Configure and migrate the current repository to Bitbucket Cloud.

CMD+SHIFT+,

Configure settings for the current repository.

CMD+R

Reload the current repository's commit history graph, file status, and build status.

CTRL+OPTION+R

Reload the current repository's status from the remote server.

CMD+SHIFT+C

Go to current repository's File Status view, focus the message editor, and populate with a message template if available.

CMD+SHIFT+R

Begin reverting one or more of the current repository's in-progress changes.

CMD+SHIFT+S

Save the current repository's in-progress changes for later use.

CMD+SHIFT+P

Send local commits for the current repository to the remote server.

CMD+SHIFT+L

Retrieve any new commits for the current repository from the remote server.

CMD+OPTION+U

Switch to a particular branch or revision in the current repository.

CMD+SHIFT+B

Create a new branch from the currently active branch.

CMD+SHIFT+M

Start the process of combining the target branch into the active one in the current repository.

CMD+SHIFT+T

Create a new tag for the active branch and commit in the current repository.

Connect a new remote server to the current repository.

Connect another repository as a dependency for the current repository.

CMD+SHIFT+W

Open the remote server's website (if available) for the current repository.

CMD+OPTION+P

Start a pull request on the remote server for the current active branch.

Item Actions

CMD+SHIFT+O

Open the selected item(s) for the current repository.

Open a new Finder window with the selected item(s) for current repository highlighted.

CMD+CTRL+T

Open a new Terminal window to the directory for the current repository.

Space

Display a preview of the selected item(s)'s contents if possible.

Open the assigned application (see Preferences) to display the item's changes.

Save the current repository's in-progress changes as a file for transfer or later use.

Take the contents of a patch (file or text) and merge them into the current repository if possible.

CMD+SHIFT+=

Add the selected untracked item(s) to the current repository's index, making them available for commit.

CMD+Delete

Remove the selected item(s) from the current repository's index and on-disk; requires a commit to save.

CMD+OPTION+SHIFT+=

Combines the Add and Remove actions (see their entries) into a single task for all the selected item(s).

Remove the selected item(s) from the current repository's index; requires a commit to complete.

Create entries (specific patterns, file types, or other designations) for items that should be ignored completely in the current repository.

Ensure the selected item(s) are included in the current commit and focus the message editor, populating with a message template if available.

CMD+OPTION+R

Begin reverting in-progress changes for the selected item(s).

Begin reverting the selected item(s) to a specific point in their history.

Proceed to the next step of an in-progress action such as rebasing or grafting.

Stop an in-progress action such as rebasing or grafting.

CMD+OPTION+L

Show a list of commits specific to the selected item in reverse chronological order.

CMD+OPTION+B

Display the contents of the selected item, as lines, with the latest commit's information (author, date, metadata) alongside.

Create a copy of the selected item(s) in the current repository using appropriate source control mechanisms.

Move the selected item(s) from one location to another (including renaming) in the current repository using appropriate source control mechanisms.

Resolving Conflicts

Open the diff for the conflicted item(s) in the application specified in Preferences -> Diff.

Choose the contents of the current branch when there's a conflict.

Choose the contents of the branch that you are merging when there's a conflict.

Cancel an in-progress merge.

Update the selected item(s) to indicate conflicts were resolved manually.

Update the selected item(s) to indicate a conflict or other problem exists still.

Lfs

Git LFS

Sourcetree

Configure the necessary changes to enable Git LFS for the current repository.

Add or remove the selected item(s) from the Git LFS index and storage when pushing.

Fetch any LFS changes from the remote for the current repository and then checkout appropriate files.

Retrieve LFS changes from the remote for the current repository.

Retrieve large file content from the Git LFS storage endpoint to replace existing placeholder files in the current repository.

Remove LFS item(s) that have been checked out into the current repository. This frees up space if they are unused.

Git/Hg Flow

How To Use Git Lfs

Configure Flow prefixes for the current repository.

CMD+OPTION+F

Begin the next Flow action based on what's currently in progress for the current repository.

Create a branch with the feature prefix and specified name.

Wrap up the in-progress Flow feature branch.

Create a branch with the release prefix and specified name.

Wrap up the in-progress Flow release branch.

Create a branch with the hotfix prefix and specified name.

Wrap up the in-progress Flow hotfix branch.

Sourcetree lfs pull

Text Formatting

CMD+OPTION+-

Wraps the selected text in Markdown syntax for a header.

CMD+OPTION+SHIFT+-

Inserts the Markdown syntax for a single line.

CMD+B

Wraps the selected text in Markdown syntax to be bold.

CMD+I

Wraps the selected text in Markdown syntax to be italicized.

CMD+L

Inserts the Markdown syntax for a bullet at the start of selected text.

CMD+OPTION+O

Inserts the Markdown syntax for a number sequence at the start of selected text.

CMD+'

Wraps the selected text in Markdown syntax to be formatted as code.

CMD+OPTION+K

Wraps the selected text in Markdown syntax for a link, focused to edit the URL portion.

Notes

  • New user? Check out Getting Started with Sourcetree.
  • Need help? Join the Atlassian Community today!
  • Created in January 2018 by Brian Ganninger.