git-internals-pdf
desktop
Our great sponsors
git-internals-pdf | desktop | |
---|---|---|
22 | 214 | |
2,479 | 19,158 | |
0.2% | 1.3% | |
0.0 | 9.9 | |
about 1 year ago | 3 days ago | |
Ruby | TypeScript | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
git-internals-pdf
-
What approach helped you to best learn Git?
For me the Peepcode Git Internals book was a great peek under the hood. I went from "Git has a lot of magical incantations" to "Git is pretty simple and I could probably build a version of it".
-
Git as a Beginner
I generally recommend the Peepcode Git Internals book. The first half explains the internals of how Git works, and the second half is a command reference.
- Git book recommendations?
- What Git primitives get SHA-1'd to generate a hash?
-
How well do you guys know Git
Once you get the hang of basic Git operations, you should look into how Git works under the hood. Git Internals helped me a lot on this.
-
⛔ Squash commits considered harmful ⛔
❯ git log --graph --pretty=oneline --abbrev-commit --all * 150c57d (HEAD -> squash-merge) Squashed commit of the following: | * 535b740 (no-squash-merge) Merge branch 'work-branch' into no-squash-merge |/| | * 1836f1c (work-branch) And more | * 4b84cfe Add more |/ * 16660f8 (main) Add more * 02a154b Initial commit ❯ git cat-file -p no-squash-merge tree 58c1fb22faa444b264e98a5ae4c4ddb07be09697 parent 16660f8b1d1538ed1b55d8533b3ee7feb68e474c parent 1836f1c53221ae701a038bf5ae380770ea911665 author Manuel Odendahl 1653304391 -0400 committer Manuel Odendahl 1653304391 -0400 Merge branch 'work-branch' into no-squash-merge * work-branch: And more Add more squash-merges-considered-harmful on squash-merge on ☁️ ttc (us-east-1) ❯ git cat-file -p squash-merge tree 58c1fb22faa444b264e98a5ae4c4ddb07be09697 parent 16660f8b1d1538ed1b55d8533b3ee7feb68e474c author Manuel Odendahl 1653304543 -0400 committer Manuel Odendahl 1653304543 -0400 Squashed commit of the following: commit 1836f1c53221ae701a038bf5ae380770ea911665 Author: Manuel Odendahl Date: Mon May 23 07:11:08 2022 -0400 And more commit 4b84cfe11aa51da994448e602e1bc4cc6083d691 Author: Manuel Odendahl Date: Mon May 23 07:11:03 2022 -0400 Add more * ``` {% endraw %} You can see that save that both {% raw %}`squash-merge`{% endraw %} and {% raw %}`no-squash-merge`{% endraw %} point to the exact same tree. The only changed thing is the commit message, and the missing parent in the squash merge. To read more about the underpinnings of git, I can recommend just experimenting with the git command line, and the following resources: - [Building Git by James Coglan](https://shop.jcoglan.com/building-git/) - [Git Internals by Scott Chacon](https://github.com/pluralsight/git-internals-pdf) ## But the history! But Manuel, you say, the history is so much cleaner! To which I counter that it is actually not. If you want to hide the link to the right parent of the non-squash merge (as it is called, the left parent being {% raw %}`main`{% endraw %} ), all you need to do is to hide it. If you use the command-line or a proper tool, use the option to only show first parents. If you only look at the first parent, and configure your git tool to fill in a full log history of the branch into the merge commit message (I personally use the github CLI {% raw %}`gh`{% endraw %} or some git-commit hooks to do it), the squash merge commit is identical to the non squash merge commit. A favorite {% raw %}`git log`{% endraw %} command of mine to quickly look at the history of the main branch, and create a changelog: {% raw %} ```shell > git log --pretty=format:'# %ad %H %s' --date=short --first-parent --reverse # 2022-05-23 02a154bc4f0fa9bca567676d45d136619c076a95 Initial commit # 2022-05-23 16660f8b1d1538ed1b55d8533b3ee7feb68e474c Add more # 2022-05-23 535b740f42e331175f3766c1374116e329a78f7e Merge branch 'work-branch' into no-squash-merge
-
How should i go about learning git?
I often recommend the Peepcode Git Internals book. The first half talks about how Git works internally. The second half is a "how to use Git" tutorial. I think understanding the internals (which aren't really that complicated) can really help to demystify Git.
-
I was said that I do not know how Git works
Conceptually, Git's not really all that complicated. I always recommend people to read the Peepcode Git Internals book (originally $9, now free): https://github.com/pluralsight/git-internals-pdf/blob/master/drafts/peepcode-git.pdf
-
would pulling make sense here?
Check out this page if you haven't yet (alternatively, direct link to the PDF.) I hear it's all good, but the Understanding Git chapter is the one I'd specifically point you to.
-
Learn the workings of Git, not just the commands(2021)
I still very much recommend the Peepcode Git Internals book.
https://github.com/pluralsight/git-internals-pdf/releases
desktop
-
Launch HN: Diversion (YC S22) – Cloud-Native Git Alternative
Congrats on the launch! It's always exciting to see more competition in the version control space.
One question I have is whether you guys are better than:
https://desktop.github.com/
This seems to do the exact same thing, be free forever, and have a more mature GUI that is also easier to use than regular terminal git. In my firm, even with people who don't know how to code, they can use github desktop (since it babies you through the process of committing code.)
- Show HN: GitHub Desktop (GUI for Git operation)
-
Ask HN: Can we do better than Git for version control?
- Product designers for open-source hardware. Various design files, SVG etc.
I’ve experimented with a “GUI only” git flow - just to see what is possible, so I could introduce the concept to others.
I found GitHub desktop app (https://desktop.github.com/)did a great job of visually showing git flows and functions, but for a non-tech/programmming person, the tool would be daunting.
Curiosity what your suggested tech stack would be - sans Terminal…
-
The Scariest Thing Happened to Me Today--Now I'm Scared to Use Git Again
just use github desktop its an open source tool https://desktop.github.com/
-
How to Deploy React App on gh-pages: Beginner's Guide
Download and install GitHub Desktop if you haven't already.
- Tudo que você precisa saber sobre Git
-
🔗 Importance of Source Code Control: A Guide to Git
3️⃣ GitHub Desktop: A desktop application provided by GitHub that allows you to interact with Git repositories visually. It provides an easy way to clone repositories, commit changes, create branches, and push and pull changes. Website: https://desktop.github.com/
-
The 10 tools I install on every new Mac I get
GitHub Desktop - much, much easier than installing and setting up Git yourself (free)
-
A collection of useful Mac Apps
GitHub Desktop - Price: Free Git client for Mac that allows you to manage your GitHub repositories.
- Collaboration?
What are some alternatives?
Crafting Interpreters - Repository for the book "Crafting Interpreters"
MK2360 - Convert mouse and keyboard input to xbox 360 controller output
CppCoreGuidelines - The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++
notion-app - Notion for Linux
Kalman-and-Bayesian-Filters-in-Python - Kalman Filter book using Jupyter Notebook. Focuses on building intuition and experience, not formal proofs. Includes Kalman filters,extended Kalman filters, unscented Kalman filters, particle filters, and more. All exercises include solutions.
mackup - Keep your application settings in sync (OS X/Linux)
papers-we-love - Papers from the computer science community to read and discuss.
git-lfs - Git extension for versioning large files
github-cheat-sheet - A list of cool features of Git and GitHub.
DropPoint - Make drag-and-drop easier using DropPoint. Drag content without having to open side-by-side windows
JavaScript-es6-and-beyond-ebook - A comprehensive, easy-to-follow ebook to learn everything from the basics of JavaScript to ES2020. Read more on my blog https://inspiredwebdev.com or buy it here https://leanpub.com/completeguidetomodernjavascript2020. Get the course here https://www.educative.io/courses/complete-guide-to-modern-javascript?aff=BqmB [Moved to: https://github.com/AlbertoMontalesi/The-complete-guide-to-modern-JavaScript]
bitwarden - Bitwarden client applications (web, browser extension, desktop, and cli) [Moved to: https://github.com/bitwarden/clients]