- Oct 2024
-
git-annex.branchable.com git-annex.branchable.com
Tags
Annotators
URL
-
- Sep 2024
-
github.com github.com
-
-
Relaxo is a transactional database built on top of git.
-
Relaxo uses the git persistent data structure for storing documents. This data structure exposes a file-system like interface, which stores any kind of data.
-
- Jul 2024
-
blog.datalad.org blog.datalad.org
-
-
A git repository is a development tool, not a distribution mechanism for end users.
-
-
git-scm.com git-scm.com
-
If the value of the variable is a relative path
Meaning git config can include relative paths
Tags
Annotators
URL
-
- Jun 2024
-
fabiensanglard.net fabiensanglard.net
Tags
Annotators
URL
-
- May 2024
-
commandmasters.com commandmasters.com
-
Use case 1: Delete a ref, useful for soft resetting the first commit
-
-
-
An alternative approach would be to rebase the "top" of the stack, part-3 on top of dev. We could then reset each of the branches to the "correct" commit in the newly-rebased branch, something like this:
-
Don't think that I just naturally perfectly segment these commits when creating the feature. I heavily rebase and edit the commits before creating a PR.
-
- Apr 2024
-
gitimmersion.com gitimmersion.com
-
it is a really good idea to check the status before doing an add .
maybefore, but check mainly AFTER indexing new files !
Tags
Annotators
URL
-
-
jvns.ca jvns.ca
-
To recap, I think these are my personal rebase rules I follow:
Recommendations for doing git rebase (see bullet points below annotation)
Tags
Annotators
URL
-
-
lucasoshiro.github.io lucasoshiro.github.io
-
However, as we want to do perform the bisection automatically using as criterion ./calc.py 14 0, we run git bisect run ./calc.py 14 0
git bisect run ./calc.py 14 0 ← example of running git bisect automatically. * If the commit is good, then the command should return 0; * If the commit is bad, then the command should return anything between 1 and 127, inclusive, except 125; * If it is not possible to tell if this commit is good or bad, then it need to be ignored, and the command should return 125.
-
Git Bisect! It allows us to find the commit that broke something. Given a “good” commit (a commit that is not broken, created before the introduction of the bug), and a “bad” commit (a commit that certainly is broken), Git will perform a binary search until the broken commit is found.
Git Bisect can be run manually or automatically
-
What are the tools that comes on your mind when someone say “debug”? Let me guess: a memory leak detector (e.g. Valgrind); a profiler (e.g. GNU gprof); a function that stops your program and gives you a REPL (e.g. Python’s breakpoint and Ruby’s byebug); something that we call a “debugger” (like GDB, or something similar embedded on the IDEs); or even our old friend, the print function. So, in this text I’ll try to convince you to add Git to your debug toolbelt.
6 differen debugging tools
-
- Mar 2024
-
stackoverflow.com stackoverflow.com
-
git log -SFoo -- path_containing_change
Excellent command to search in git history of a specific file!
-
- Feb 2024
-
github.com github.com
-
if (!stat(worktree_git_path(wt, "rebase-apply"), &st)) { if (!stat(worktree_git_path(wt, "rebase-apply/applying"), &st)) { state->am_in_progress = 1; if (!stat(worktree_git_path(wt, "rebase-apply/patch"), &st) && !st.st_size) state->am_empty_patch = 1; } else { state->rebase_in_progress = 1; state->branch = get_branch(wt, "rebase-apply/head-name"); state->onto = get_branch(wt, "rebase-apply/onto"); } } else if (!stat(worktree_git_path(wt, "rebase-merge"), &st)) { if (!stat(worktree_git_path(wt, "rebase-merge/interactive"), &st)) state->rebase_interactive_in_progress = 1; else state->rebase_in_progress = 1; state->branch = get_branch(wt, "rebase-merge/head-name"); state->onto = get_branch(wt, "rebase-merge/onto"); } else return 0; return 1;
Tags
Annotators
URL
-
-
stackoverflow.com stackoverflow.com
-
git remote set-head origin -a
Resolved the problem I had where I mistakenly deleted this [local tracking branch]?
ls .git/refs/remotes/origin/HEAD ls: cannot access '.git/refs/remotes/origin/HEAD': No such file or directory
-
-
www.reddit.com www.reddit.com
-
You should never rely on the presence or contents of anything under the .git directory. That's git's territory, not yours or the build system's. Use it's plumbing commands to get access to the information you need, rather than trying to read files directly. Git provides no guarantee about the location or contents of any of those files as far as I'm aware.
-
-
stackoverflow.com stackoverflow.com
-
Note that UTF-8 characters can be used in branch names:
-
>, ==> and -> are valid branch names
-
-
github.com github.com
-
Pull requests are quite welcome, and should target the next branch.
-
diff-so-fancy strives to make your diffs human readable instead of machine readable
-
-
softwareengineering.stackexchange.com softwareengineering.stackexchange.com
-
The increment-after-release model makes sense for branching too. Suppose you have a mainline development branch, and you create maintenance branches for releases. The moment you create your release branch, your development branch is no longer linked to that release's version number. The development branch contains code that is part of the next release, so the version should reflect that.
-
-
git-scm.com git-scm.com
-
git diff 本身只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动。
比较的是工作目录中当前文件和暂存区域快照之间的差异,若要查看已暂存的将要添加到下次提交里的内容,可以用
git diff --staged
命令 -
在工作一段时间后, 它们的状态可能是未修改,已修改或已放入暂存区
Jetbrains IDE 默认并不会开启暂存区功能,会自动都添加到暂存区
Tags
Annotators
URL
-
-
-
git log --oneline --graph --decorate --all
show commits of git as a tree
To show the last 2 commits use this!
git log --oneline --graph --decorate --all HEAD~2..HEAD
-
git config --global alias.tree 'log --oneline --graph --decorate --all'
configuration to make a shortcut to show commits of git as a tree
-
- Jan 2024
-
git-cliff.org git-cliff.org
-
Getting Started git-cliff can generate changelog files from the Git history by utilizing conventional commits as well as regex-powered custom parsers. The changelog template can be customized with a configuration file to match the desired format.
with emacs
Tags
Annotators
URL
-
-
code.visualstudio.com code.visualstudio.com
-
Visual Studio Code has integrated source control management (SCM) and includes Git support out-of-the-box. Many other source control providers are available through extensions on the VS Code Marketplace
This is an excellent resource for learing about Git integration with VS Code
-
-
-
Track changes for each screen automatically – like Git for designs.
Tags
Annotators
URL
-
- Dec 2023
-
codeberg.org codeberg.org
-
Codeberg is a collaboration platform providing Git hosting and services for free and open source software, content and projects.
-
- Oct 2023
-
stackoverflow.com stackoverflow.com
-
git branch --delete --remotes origin/X git branch -dr origin/X # Shorter
-
- Sep 2023
-
stackoverflow.com stackoverflow.com
-
Annoyingly, git fetch --depth=<N> won't pick up new tags
-
-
stackoverflow.com stackoverflow.com
-
git fetch --depth 1 origin <sha1>
-
-
-
merge queue prevents semantic merge conflicts by automating the rebase process during merge, and ensuring that the trunk branch stays “green.”
merge queue - new GitHub feature
Tags
Annotators
URL
-
-
git-scm.com git-scm.com
-
amend
后悔药,补充内容。
-
-
git-scm.com git-scm.com
-
Changes not staged for commit
修改没有舞台去提交/修改没有放到舞台/修改没有放到暂存区
-
Changes to be committed:
修改将被提交
Tags
Annotators
URL
-
-
git-scm.com git-scm.com
-
git add
标记资产,需要进行版本控制的内容。
-
$ git init
初始化,获得/变成仓库/存储库
Tags
Annotators
URL
-
- Aug 2023
-
git-scm.com git-scm.com
Tags
Annotators
URL
-
- Jul 2023
-
-
Although 4-part numbers are supported, Microsoft no longer recommends this format.
Where is the recomendation?
Tags
Annotators
URL
-
-
git-annex.branchable.com git-annex.branchable.com
-
-
git-scm.com git-scm.com
-
tip
The tip of a branch deserved its own term.
-
- Jun 2023
-
stackoverflow.com stackoverflow.com
-
First, although not directly relevant to the answer, it's important to remember that Git does not have remote tags. Git just has tags.
-
-
stackoverflow.com stackoverflow.com
-
git config --global --unset http.proxy
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
-
-
wet-boew.github.io wet-boew.github.io
-
Setting the proxy for Git
git config --global --add http.proxy http://USERNAME:PASSWORD@PROXY_ADDRESS:PROXY_PORT git config --global --add https.proxy http://USERNAME:PASSWORD@PROXY_ADDRESS:PROXY_PORT
-
Setting the proxy for other tasks
export HTTPS_PROXY=http://USERNAME:PASSWORD@PROXY_ADDRESS:PROXY_PORT
Tags
Annotators
URL
-
-
blog.git-init.com blog.git-init.com
-
Instead of manually backtracking what changes each developer made, three-way merge does just that for us! This is because modern version control systems, such as Git, can automatically find what's known as the "nearest common ancestor", aka base revision (or merge-base). It is called "3-way" since it uses three revisions to produce a final merged version.
3-way merge
-
-
Whenever two or more developers make changes to the same file respectively and later try to fuse the versions, merge conflicts will likely occur.
conflict definition
-
- May 2023
-
xiangyang666.gitee.io xiangyang666.gitee.ioGit | 诗仙1
-
git
- Git教程
Tags
Annotators
URL
-
- Apr 2023
-
stackoverflow.com stackoverflow.com
-
In recent git versions, git restore is supposed to be a "better" way to revert undesired local changes than the overloaded checkout. Great, that sounds reasonable - a nice simple purpose-built tool for a common operation.
-
-
-
Kilka przykładów z wykorzystujących Conventional Commits:
Examples of Conventional Commits (see the block below)
-
Conventional Commits – type
Conventional Commits types: - feat - fix - docs - chore - refactor - tests - perf - styles - ci - build - revert
-
Commity o treści refactor, added XXX czy cr fixes, to smutna i nudna rzeczywistość.
-
- Mar 2023
-
preshing.com preshing.com
-
Small Collision Probabilities
How probable is for some git hash-ids (some chars, not the full length) to collide:
-
for a small project with ~100 commits:
- 8 digits (32bits): 1/million
- 7 digits (28bits): 1/54,000
- 6 digits (24bits): 1/3,400
-
for a big project: with ~10.000 commits:
- 8 digits: 1/100
- 7 digits: 1/6
- 6 digits: ~1
As confirmed with the vecto repo, with these ipython commands: ```ipython
!git rev-list --all --count 14042 def collissions(k,N): ...: return 1 - e((-k(k-1)/(2N)))
collissions(14042, 16**6) 0.9971938358691735 !git rev-list --all | cut -c -6 | sort | uniq -cd 2 5af40d 2 6a6c62 2 914c24 2 d83979 2 e8060f
collissions(14042, 16**7) 0.3073608000674162 !git rev-list --all | cut -c -7 | sort | uniq -cd 2 e8060f9
collissions(14042, 16**8) 0.022691464724788335 !git rev-list --all | cut -c -8 | sort | uniq -cd <nothing> ```
-
Tags
Annotators
URL
-
-
stackoverflow.com stackoverflow.com
-
So the short answer is to pick rebase or merge based on what you want your history to look like.
Quick summary of rebase vs merge
-
-
www.bobdc.com www.bobdc.com
-
```sparql PREFIX wd: http://www.wikidata.org/entity/ PREFIX gist: https://ontologies.semanticarts.com/gist/ PREFIX dcterms: http://purl.org/dc/terms/
SELECT DISTINCT ?commitTitle ?commitTime ?filename ?textLine WHERE {
?commit a wd:Q20058545 ; # it's a commit gist:hasPart ?part ; dcterms:subject ?commitSubject ; gist:atDateTime ?commitTime .
?commitSubject dcterms:title ?commitTitle .
?part gist:produces ?contiguousLines .
?contiguousLines gist:occursIn ?file ; http://example.com/containedTextContainer ?textContainer .
?file gist:name ?filename . ?textContainer ?line ?textLine .
FILTER(contains(?textLine,"music")) } ```
Tags
Annotators
URL
-
-
Tags
Annotators
URL
-
-
Tags
Annotators
URL
-
- Feb 2023
-
medium.com medium.com
-
In very large code bases, it is likely impossible to make a change to a fundamental API and get it code reviewed by every affected team before merge conflicts force the process to start over again.
-
-
stackoverflow.com stackoverflow.com
-
Result of lots of searching on net is that pre-checkout hook in git is not implemented yet. The reason can be: There is no practical use. I do have a case It can be achieved by any other means. Please tell me how? Its too difficult to implement. I don't think this is a valid reason
-
- Jan 2023
-
stackoverflow.com stackoverflow.com
-
In ~/.githelpers, define a bash function:
-
-
stackoverflow.com stackoverflow.com
-
For ordinary commits, it's trivially obvious what to compare: compare this commit's snapshot to the previous (i.e., parent) commit's snapshot. So that is what git show does (and git log -p too): it runs a git diff from the parent commit, to this commit. Merge commits don't have just one parent commit, though. They have two parents.1 This is what makes them "merge commits" in the first place: the definition of a merge commit is a commit with at least two parents.
-
- Dec 2022
-
forgefed.org forgefed.org
Tags
Annotators
URL
-
-
forgefed.org forgefed.org
Tags
Annotators
URL
-
-
-
-
refine.dev refine.dev
-
Your changes preserved through git stash are saved in your project’s .git directory, usually, the path is /.git/refs/stash
Location where
git stash
saves files
-
-
semantic-release.gitbook.io semantic-release.gitbook.io
-
www.zhihu.com www.zhihu.com
-
Git 里面的 origin 到底代表啥意思?
-
-
www.zhihu.com www.zhihu.com
-
百度、阿里、腾讯之类的大公司用 Git 吗?他们如何管理源代码?
-
- Nov 2022
-
github.com github.com
Tags
Annotators
URL
-
-
zhuanlan.zhihu.com zhuanlan.zhihu.com
-
自己虽然有梯子,可以正常访问github页面,但是在发现“git clone”命令速度特别慢,有时还经常卡掉。本文通过设置git 代理,解决被墙问题。
git clone 无法拉取被墙的 repo
Tags
Annotators
URL
-
-
raphael-leger.medium.com raphael-leger.medium.com
-
It is handy to manually generate the diagram from times to times using the previously created command: npm run db:diagram:generate. Though, getting the diagram to update itself on its own automatically without a developer interaction would ensure that it the diagram is never obsolete. There are several ways of doing this.You could use a pre-commit git hook or even better simply configure your CI/CD pipeline(s) to run the npm script whenever something gets merged into the main branch 🙂
-
-
syntaxbug.com syntaxbug.com
-
[Solved] Git: LF will be replaced by CRLF the next time Git touches it’ problem solving and thinking
Trouble shooting git add . issue.
Setting method one for Windows system working with others:
git config --global core.autocrlf true
Tags
Annotators
URL
-
-
til.simonwillison.net til.simonwillison.net
-
You can then edit files in that repository and commit and push them like this: cd 0a30d52feeb3ff60f7d8636b0bde296b # Edit files here git commit -m "Edited some files" -a git push
-
But if you want to be able to make local edits and then push them back, you need to use this recipe instead: git clone git@gist.github.com:0a30d52feeb3ff60f7d8636b0bde296b.git You can find this in the "Embed" menu, as the "Clone via SSH" option.
-
You can clone them anonymously (read-only) just using their URL: git clone https://gist.github.com/simonw/0a30d52feeb3ff60f7d8636b0bde296b
-
-
stackoverflow.com stackoverflow.com
-
Changing the second line to: foo.txt text !diff would restore the default unset-ness for diff, while: foo.txt text diff will force diff to be set (both will presumably result in a diff, since Git has presumably not previously been detecting foo.txt as binary).
comments for tag: undefined vs. null: Technically this is undefined (unset,
!diff
) vs. true (diff
), but it's similar enough that don't need a separate tag just for that.annotation meta: may need new tag: undefined/unset vs. null/set
-
-
test-nbdime.readthedocs.io test-nbdime.readthedocs.io
-
test-nbdime.readthedocs.io test-nbdime.readthedocs.io
- Oct 2022
-
www.hanselman.com www.hanselman.com
-
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main
Probably would be better to use:
git remote set-head origin -a
-
git config --global init.defaultBranch main
-
-
gitbetter.substack.com gitbetter.substack.com
-
git remote set-head origin -aThe above command will query the remote host for the HEAD upstream and it updates that upstream in the local.
-
-
github.com github.com
-
git show | cat -A
Command to find a zero width no-break space
Tags
Annotators
URL
-
-
tylercipriani.com tylercipriani.com
-
But for all of its features, GitHub implements only a subset of git. For instance, GitHub lacks the default merge strategy of git—the fast-forward merge.
-
- Sep 2022
-
pbs.twimg.com pbs.twimg.com
-
git
-
-
stackoverflow.com stackoverflow.com
-
fetch = ^refs/heads/_*
Ignore git branches when fetch from remote.
-
-
docs.gitlab.com docs.gitlab.com
-
Rename the existing default branch to the new name (main). The argument -m transfers all commit history to the new branch: git branch -m master main
-
-
stackoverflow.com stackoverflow.com
-
If we ever moved a file to a different location or renamed it, all its previous history is lost in git log, unless we specifically use git log --follow. I think usually, the expected behavior is that we'd like to see the past history too, not "cut off" after the rename or move, so is there a reason why git log doesn't default to using the --follow flag?
-
-
stackoverflow.com stackoverflow.com
-
Note: Git 2.6+ (Q3 2015) will propose that in command line: see "Why does git log not default to git log --follow?" Note: Git 2.6.0 has been released and includes this feature. Following path changes in the log command can be enabled by setting the log.follow config option to true as in: git config log.follow true
-
-
mirrors.edge.kernel.org mirrors.edge.kernel.org
-
If you want to replace many blobs, trees or commits that are part of a string of commits, you may just want to create a replacement string of commits and then only replace the commit at the tip of the target string of commits with the commit at the tip of the replacement string of commits.
-
-
-
git.wiki.kernel.org git.wiki.kernel.org
-
As of Git 1.6.5, the more flexible git replace has been added, which allows you to replace any object with any other object, and tracks the associations via refs which can be pushed and pulled between repos.
-
-
-
www.linestarve.com www.linestarve.com
-
The next step is to graft the two branches together, skipping the two commits which renamed the folder. (Otherwise there will be a weird jump where everything is deleted and recreated.)
-
-
stackoverflow.com stackoverflow.com
-
git ls-tree --name-only [branch]
git ls-tree --name-only @
for current branch
-
- Aug 2022
-
stackoverflow.com stackoverflow.com
-
A related technique is git submodules, but they come with annoying caveats (for example people who clone your repository won't clone the submodules unless they call git clone --recursive),
-
git-subtrac (from the author of the earlier git-subtree) seems to solve some of the problems with git submodules.
-
# Do this the first time: $ git remote add -f -t master --no-tags gitgit https://github.com/git/git.git $ git subtree add --squash --prefix=third_party/git gitgit/master # In future, you can merge in additional changes as follows: $ git subtree pull --squash --prefix=third_party/git gitgit/master # And you can push changes back upstream as follows: $ git subtree push --prefix=third_party/git gitgit/master # Or possibly (not sure what the difference is): $ git subtree push --squash --prefix=third_party/git gitgit/master
-
-
www.roboleary.net www.roboleary.net
-
stackoverflow.com stackoverflow.com
-
The main problem here is that the problem itself is a little bit poorly defined.
-
- Jul 2022
-
git-scm.com git-scm.com
-
Documentación Git del comando Git restore
-
git-restore - Restore working tree files
Aunque dice que restablece working tree files, también restablece el Index (desde HEAD)
Tags
Annotators
URL
-
-
github.blog github.blog
-
GitHub Blog post donde se hace referencia a los nuevos comandos:
- Git switch
- Git restore
Nuevos en la versión 2.23 de Git
-
Highlights from Git 2.23
-
-
www.youtube.com www.youtube.comYouTube1
-
Proceso para clonar una sola rama de un repositorio Git remoto
-
- Jun 2022
-
-
Git also has a built-in command (maintenance) to optimize a repository’s data, speeding up commands and reducing disk space. This isn’t enabled by default, so we register it with a schedule for daily and hourly routines.
git maintenance
-
-
github.com github.com
-
Remove the commit from step 2. We will merge ignoring the failure. Remove the commit from the other, check it passes with the other commit now on main. Merge the other. We will trigger builds for the main branch of affected repositories to check if everything is in order. Steps 5-8 should happen continuously (e.g. one after another but within a short timespan) so that we don't leave a broken main around. It is important to triage that build process and revert if necessary.
It is important to not leave a broken main around.
-
- May 2022
-
stackoverflow.com stackoverflow.com
-
git diff-tree -p COMMIT
command to show code change in given commit
-
git show COMMIT --compact-summary
command to show code change in given commit
-
git diff <root_commit>^!
command to show code change of one commit: git diff <root_commit>^ git diff <root_commit>^!
-
-
blog.aloni.org blog.aloni.org
Tags
Annotators
URL
-
-
workingcopyapp.com workingcopyapp.com
-
You could also start a new email with the contents of this file, by making x-success use the mailto: scheme with something like working-copy://x-callback-url/read/?repo=my%20repo&path=README.md&x-success=mailto%3A%3Fbody%3D If you need to debug your callbacks, setting x-success=mailto%3A%3Fbody%3D
Holy god in fuck...
-
-
cbea.ms cbea.ms
-
A properly formed Git commit subject line should always be able to complete the following sentence:If applied, this commit will your subject line hereFor example:If applied, this commit will refactor subsystem X for readability
An example how to always aim for imperative commits
-
Git itself uses the imperative whenever it creates a commit on your behalf.For example, the default message created when using git merge reads:Merge branch 'myfeature'
Using imperative mood in subject line of git commits
-
Commit messages with bodies are not so easy to write with the -m option. You’re better off writing the message in a proper text editor.
I've tested it on Windows, and in PowerShell or Git Bash it is as simple as:
```console git commit -m "Subject line<ENTER>
body line 1 body line 2"<ENTER> ```
However, it does not work in CMD.exe (pressing [ENTER] will not move to the next line)
-
Firstly, not every commit requires both a subject and a body. Sometimes a single line is fine, especially when the change is so simple that no further context is necessary.
Not every commit requires a body part
-
Summarize changes in around 50 characters or less More detailed explanatory text, if necessary. Wrap it to about 72 characters or so. In some contexts, the first line is treated as the subject of the commit and the rest of the text as the body. The blank line separating the summary from the body is critical (unless you omit the body entirely); various tools like `log`, `shortlog` and `rebase` can get confused if you run the two together. Explain the problem that this commit is solving. Focus on why you are making this change as opposed to how (the code explains that). Are there side effects or other unintuitive consequences of this change? Here's the place to explain them. Further paragraphs come after blank lines. - Bullet points are okay, too - Typically a hyphen or asterisk is used for the bullet, preceded by a single space, with blank lines in between, but conventions vary here If you use an issue tracker, put references to them at the bottom, like this: Resolves: #123 See also: #456, #789
Example of a great commit message
-
Separate subject from body with a blank lineLimit the subject line to 50 charactersCapitalize the subject lineDo not end the subject line with a periodUse the imperative mood in the subject lineWrap the body at 72 charactersUse the body to explain what and why vs. how
7 rules of great commit messages
-
What may be a hassle at first soon becomes habit, and eventually a source of pride and productivity for all involved.
-
Commit messages can do exactly that and as a result, a commit message shows whether a developer is a good collaborator.
-
A diff will tell you what changed, but only the commit message can properly tell you why.
Commit messages are important
-
Look at Spring Boot, or any repository managed by Tim Pope.
2 great examples of clean commits: * https://github.com/spring-projects/spring-boot/commits/master * https://github.com/tpope/vim-pathogen/commits/master
Tags
Annotators
URL
-
- Apr 2022
-
andrewlock.net andrewlock.net
-
The eagle-eyed among you may notice that there isn't a .git directory in the app-example-2 working tree. Instead, there's a .git file. This file points to the git directory in the original clone, and it means that all your usual git commands work inside the app-example-2 directory, as well as in the original app-example directory.
The working of git worktree
-
Anecdotally, I've found IDEs get much less "confused" if you use their built-in support for switching git branches, instead of changing them from the command line and waiting for the IDE to "notice" the changes.
-
-
git-scm.com git-scm.com
-
GIT_INDEX_FILE is the path to the index file (non-bare repositories only).
export GIT_INDEX_FILE=".git/index.linux" if you are working on Linux
export GIT_INDEX_FILE=".git/index.windows" if you are working on Linux
-
-
gitmoji.dev gitmoji.devgitmoji1
-
- Mar 2022
-
docs.flatpak.org docs.flatpak.org
-
Flatpak is built on top of a technology called OSTree, which is influenced by and very similar to the Git version control system. Like Git, OSTree allows versioned data to be tracked and to be distributed between different repositories. However, where Git is designed to track source files, OSTree is designed to track binary files and other large data.
-
Internally, Flatpak therefore works in a similar way to Git, and many Flatpak concepts are analogous to Git concepts. Like Git, Flatpak uses repositories to store data, and it tracks the differences between versions.
-
-
ostreedev.github.io ostreedev.github.io
-
The underlying architecture might be summarized as “git for operating system binaries”.
Tags
Annotators
URL
-
-
xkcd.com xkcd.com
-