I know I don't know git, that's why whenever I have to do something new I research it for 30 minutes and then make a script so I don't have to do that again. Mad respect to all y'all who somehow find the time to master git and all the other devops wizardry on top of learning your language of choice.
@w花b9 ай бұрын
If someone has the confidence to say they know git, I'd be scared of them. They're too powerful
@mr.mister3119 ай бұрын
I think for a lot of people it's less about time and more about version control being this necessary evil we have to deal with when really we just want to write code. I'll spend hours learning programming languages that I'm never going to actually use instead of spending that time reading a manual on the version control that I use every day. I'm currently trying to convince myself that it is one of those things that are more fun once you actually know it.
@autohmae9 ай бұрын
@@w花b or lying to themselves.
@gitbutlerapp9 ай бұрын
Try out GitButler, maybe it's a nice compromise. :)
@mangalegends9 ай бұрын
I have found my people @@mr.mister311
@sandeepparmar31139 ай бұрын
The excitement level of this guy is priceless. Imagine working with him in a team!
@sammcj20009 ай бұрын
Great talk, I really appreciate the "shotgun" style presentation - it cuts the crap while keeping it clear.
@MHLuttekes9 ай бұрын
I don't know if it's ADHD, but my brain goes so well on this type of content where normally I struggle to follow presentations.
@dittoford9 ай бұрын
@@MHLuttekesI struggle with this too, my guess is because these style of presentation just keeps bombarding you with information so you’re more inclined to stay focused. Whereas usual presentation are sprinkled with useless fluff that makes you “turn off” your brain for a while and “turn on” again when the important bits were presented
@keyd339 ай бұрын
I also like he goes directly to the point instead of talking during 10 minutes with an history about versioning systems...
@BJ-bd5fc8 ай бұрын
It's better to watch it later (vs. live). I have to pause the video, take notes, and think about how it would apply to my job if I want the info to stick. This is a great presentation, though. There is zero fat here.
@nlovelldev9 ай бұрын
Timestamps for dorks: 00:00 - Introduction 01:06 - About Me (well, Scott Chacon) 02:36 - How Well Do You Know Git? 05:09 - Our Agenda 06:25 - Some Helpful Config Stuff 09:42 - Oldies But Goodies 16:22 - Some New Stuff (You May Not Have Noticed) 23:48 - Some Big Repo Stuff / Monorepo Stuff 33:29 - Some New Github Stuff 35:54 - GitButler 36:50 - End of talk 37:03 - Start of Q&A Session 37:06 - Q: Why does GitHub not do git range diff? 38:28 - Q: Why do submodules suck everywhere? 40:16 - Q: With SSH signing, is it possible to specify more than one key? 40:42 - Q: Why can't --force-with-lease be the default force? 42:33 - Q: If you were back on the Git development team, what direction would you like to see it move in? 44:58 - Q: We all love the Git CLI - but do you ever use any visual tools? 46:41 - That's all folks!-
@gitbutlerapp9 ай бұрын
Awesome! We're stealing this and updating the description. Thanks for the hard work!
@Arrow_7s9 ай бұрын
@@gitbutlerappthe sarcasm lmao
@Little-bird-told-me9 ай бұрын
You are real MVP
@TheRealZitroX9 ай бұрын
@@gitbutlerapphow to save work :) xD
@neoesm8 ай бұрын
can you pin this comment? @@gitbutlerapp
@donutsleader9 ай бұрын
The talk is great, but the manner of it being presented is even better!
@aleattorium9 ай бұрын
Suggestion: add chapters (timestamps) to this video. It really helps when you're watching for the second time!
@billionai48719 ай бұрын
If someone adds the chapters as a comment, I think youtube might catch them automagically
@nlovelldev9 ай бұрын
ask and ye shall receive. timestamps up above (or below... or wherever my comment ended up floating to.)
@MohitKhare9 ай бұрын
@@nlovelldev Already your FAN brother or sister or whoever you are. 😊♥
@parp9 ай бұрын
@@nlovelldev tysm x
@JoshuaRose-hm3xq2 ай бұрын
or the third ✋
@MaikDiepenbroek9 ай бұрын
Next to being an informative talk, the way it's presented is great. Good job on that presentation skills!
@MelroyvandenBerg9 ай бұрын
10 out of 10
@cybrflash9 ай бұрын
`git blame -C -C -C` is pure gold. But wait, there's more! From `GIT-BLAME(1)` -C[] In addition to -M, detect lines moved or copied from other files that were modified in the same commit. This is useful when you reorganize your program and move code around across files. When this option is given twice, the command additionally looks for copies from other files in the commit that creates the file. When this option is given three times, the command additionally looks for copies from other files in any commit. is optional but it is the lower bound on the number of alphanumeric characters that Git must detect as moving/copying between files for it to associate those lines with the parent commit. And the default value is 40. If there are more than one -C options given, the argument of the last -C will take effect.
@monawoka977 ай бұрын
I have never once thought I know git.
@jj18Ай бұрын
me neither. I just use the basics and pray nothing goes wrong.
@TheMasonX239 ай бұрын
So excited to share this with my boss Mike, he's our local Git wizard and I'm so thankful for him. He's always so excited to share the new things he's learned and I'm looking forward to paying it forward!
@ronminnich9 ай бұрын
Thanks for the book. It saved my neck in 2011. Every intern I've had since 2012, on their first day, I give them the book and ask them to read it all, and do all the exercises. I give them paper so they can mark it up as needed. Every intern that does this, has no issues with git all summer. The one or two interns that did not do the exercises? They struggle. Great book!
@ghos7bear9 ай бұрын
I haven't watched the video yet but it would be useful if you'd put book's name into your comment so people can look it up right away.
@MichaelLohmann-up9ux9 ай бұрын
@@ghos7bear It is the "Pro Git" book you can find for free with a search engin of your choice
@ronminnich9 ай бұрын
Pro Git 2nd ed. Edition by Scott Chacon -- just do every exercise and try every command, even if it's boring or you have done it before. That's what we learned over 10y of interns.
@getyournekoshere98249 ай бұрын
lmfao, you ask every intern to read a 500 page book for a summer internship? try not to respond with: "yeah I work at a super awesome place and im so smart, try putting a little more work in kiddo, pull up your bootstraps etc etc"
@Spelaren72549 ай бұрын
@@ronminnichhope you at least pay them for that lmao seems like a shitty workplace ngl. I have never had any problems with git and I didn’t get forced to read a 500 page book. If I wonder something I’ll just google it. Takes 3s
@coder2k9 ай бұрын
Didn't know that guy before, immediately caught fire because of his excitement, bought his book after the first 10 minutes. Great talk!
@JoseSilva-gt6zj9 ай бұрын
Time 8:13 - Setting or defining work and oss (open source software) directories. Thank you, Scott!
@worldadmin98119 ай бұрын
Really excellent talk. Incredible pacing, funny, and lots to learn for folks at every level.
@carlogilmarp.s.169 ай бұрын
Scott Chacon is a legend! I learned git in 2016, and I love it, it's one of the most important tools for me, after start my journey as a developer, I start to teach git, and the best resource always was the Pro Git book.
@WhileTrueCode6 ай бұрын
committing to multiple branches is brilliant! its always a PITA to notice/fix a core bug when working on a feature branch.. stash->checkout->pop->commit->checkout->merge is so much overhead for what started as a 5-second one liner fix.
@nceevij2 ай бұрын
This talk is great it felt I knew nothing of Github. But it was super fast delivery before my mind , eyes, and ears can align together and comprehend anything out of it
@pavellaptev29939 ай бұрын
Fantastic speech! Thank you, Scott. So many cool things about Git.
@Raykazen9 ай бұрын
"fucking nerds...". Golden
@linonator9 ай бұрын
😂 family looked at me weird laughing my butt off
@Beryesa.9 ай бұрын
Indeed xd
@ss4yaasir5249 ай бұрын
Honestly, I find using it via the terminal much simpler lol
@IllIIIIIIllll9 ай бұрын
hahaha what a joke hahaha😲
@MaazKhan-lw6kz9 ай бұрын
My favorite part 😂✨
@lpanebr9 ай бұрын
10:59 that -L to blame and log is awesome!
@traal9 ай бұрын
Best use for GUI Git has to be staging and unstaging parts of a file. In VS Code, just select some lines in the diff view and right-click. Stage selection and unstage selection. Amazing! 😊
@RoamingAdhocrat3 ай бұрын
you can do this in the terminal with `git add -p` - albeit not as elegantly when you want to break up a block of changes
@samuelcasimiro8 ай бұрын
Wow. What a great presentation. Thank you very much.
@hansvandenbogert89927 ай бұрын
just pluggin git butler shortly, well done! Real-world git goodies, love it.
@jasonhenson79489 ай бұрын
Virtual branches are an amazing feature. There are so many times I've been working on a branch and seen a minor fix in a file unrelated to my work. Streamlining those fixes while keeping them separate from my branches is very efficient for everyone.
@tarreislam7 ай бұрын
Stash?!
@QuantumCanvas075 ай бұрын
For beginners who feel like god after knowing some git push command, this is a great humbling video for you.
@sharkbelly11699 ай бұрын
Thanks for a great talk. Gonna be using git column all the time XD
@MikkoRantalainen9 ай бұрын
46:30 I've been using Git for a long time and I use git gui for building my commit because I always commit lines of code, not full files. And I also use gitk for reviewing history of the code unless I'm looking for some highly specific thing that gitk doesn't support well - for those cases it's mostly `git log -p - - optional/path/limit` and grepping the results if needed. (The dashes should obviously be combined without a space but KZbin comment interface cannot display that string correctly.)
@lucvaroqui27549 ай бұрын
I was there, great talk! Made me discover GirButler, super promising!!
@gitbutlerapp9 ай бұрын
I'm impressed you made the cut. I saw them ushering a hundred people out :)
@jasonhenson79489 ай бұрын
Those packed aisles would have been a fire warden's nightmare.
@gitbutlerapp9 ай бұрын
@@jasonhenson7948 They kicked everyone out who did not have a seat before the talk started. We were sad, but the fire warden would have remained happy.
@chaysesmith18738 ай бұрын
I was kinda hoping he would talk about git worktrees, I use those to checkout branches into separate file paths on my computer which allows me to work in different branches simultaneously. And I can keep long-lived branches separate. This also integrates really well with vscode workspaces.
@vibovitold2 ай бұрын
frankly i have an old habit of sidestepping Git completely for that, i simply checkout the repo into two independent copies and i switch between those : )
@DrGreenGiant9 ай бұрын
Excellent talk! After many years on KZbin this made me create a new playlist of videos I need to rewatch regularly. The bar has been set pretty high!
@dorianligthart33784 ай бұрын
I wish you could search up, not based on the title, but on the frequency of words in the transcript of a video.
@kipchickensout9 ай бұрын
I loved your "Ask your code" talk back at Code.Talks and I love this one even more! Holy shit that git butler idea is great, I've always wanted to work on several branches intermittently
@dennispagano109 ай бұрын
Appreciated the Sneakers reference.
@rbgtk9 ай бұрын
I was supposed to go to Fosdem, but family business took priority. Thanks for uploading!
@MadMathMike9 ай бұрын
Fantastic presentation!
@acrophile89 ай бұрын
Found this fun and informative... love the Sneakers reference too.
@leonasdev9 ай бұрын
Waht a great talk. I have same frustrating about that part of git does not record all the shit for me.
@aaronr.96449 ай бұрын
I didn't know about range diff. I do the same thing manually because I didn't realise there was a tool for that :)
@JunepilLee6 ай бұрын
I realy love the pro git book and Im so happy that I found this vid 😊
@jimmorrison26577 ай бұрын
Remember when version control used to be simple? When it didn't need to be wrapped in huge frameworks so that people could work with it? When it didn't need conferences like this? When it wasn't the main topic of conversation on a project, and we just did the project?
@rebeccakeller46666 ай бұрын
Yes I do. And source control back then wasn't a tool the way git is. Like, also,git is awful in many ways, but I still love it deeply for the things it lets me do, manipulate and interrogate my repo history in many useful ways. It lets me approach certain problem classes in a meta way that old source control just could not. Branching is a first class citizen in git and that was not the case inb4. Learning git is a brick wall, as an early adopter I had the difficulty of explaining git many times to many companies, simple things are often stupid, and git basically requires you to learn it's mental model pretty well before you can do basic things with confidence. Then again, idk, sql doesn't make much sense unless you know what a relational database is. So git is hard in dumb ways, and if anything ever replaces it the way git ate svn, then I can't wait to drop git over whatever that future better system is, but it doesn't seem to exist, so I'm on the whole far far happier with git, warts and all, then any prior system. CVS wasn't even atomic, and vss would corrupt itself, svn really couldn't do branches and merge conflicts ruined your working copy in unrecoverable ways, and git is so so fast, and also best case was you could do exactly one local commit effectively where git you can do infinity local commits and also peer to peer stuff. Evolution of source control systems has been a net positive
@jimmorrison26576 ай бұрын
@@rebeccakeller4666 Hi Rebecca. I could write a similar passage about how bad it is, but I won't bother. I will just say one thing; it is too difficult, and any good software should be easy. Yes, it can be learned, and when you have learned it, it is ok. But it shouldn't take so long to learn. I have been using Git for the last 10 years, so I feel like know it fairly in depth, but it took me about two years to get to this level. Why? You can of course take the easy way out at this point and just say I must be stupid, but I will assume you won't do that. It took me just a few weeks to get to a similar level with CVS, SVN, Clearcase etc. Now I know Git, but I have to work on projects with more junior people who are currently going through the same hell I went through. While they are learning, they make a lot of mistakes and people have to spend their time trying to fix them. The old systems, which would have improved a lot by now, were much better because they were simple and just worked. Anyway, I am glad you like it. Each to their own.
@vibovitold2 ай бұрын
Yes, I remember SVN. It was simpler, but it came at a cost. For example working with branches was very clunky and inconvenient.
@jimmorrison26572 ай бұрын
@@vibovitold Creating branches was just as easy as it is with Git. But you didn't need to make a new branch for everything. If it was a simple fix, you just checked out the code, did the fix, and checked it back in again, via a review if needed. I know I'm flogging a dead horse here, but Git is a huge step backwards.
@vibovitold2 ай бұрын
@@jimmorrison2657 creating, kind of. merging, now that's not how i remember it at all.: ) and i'm not a fanboy of Git. it is poorly designed especially in terms of API - commands are poorly named etc. but this actually emphasizes the question - if it beated all the competition DESPITE those blatant flaws... why did it happen in the first place? what's your theory
@MelroyvandenBerg9 ай бұрын
Youre a great speaker!
@gitbutlerapp9 ай бұрын
Thanks!
@MelroyvandenBerg9 ай бұрын
@@gitbutlerappYou did had a typo at least once ;P It's `git maintenance start` not maintainance. But I forgive you.
@MHLuttekes9 ай бұрын
"Raise your hand if you never used anything other than Git" ... BRB feeling old.
@gitbutlerapp9 ай бұрын
Tell me about it.
@MHLuttekes9 ай бұрын
@@gitbutlerapp 2x three letters: SVN, and FTP. 🥳
@berkes9 ай бұрын
I feel actual anxiety when I recall the days of CVS and SVN. Man, those were horrible.
@kevincozens68378 ай бұрын
I still use RCS for personal projects involving a single file. For multi-file projects that I'm not making available publicly I'm more likely to use SVN . I started using git only because I was working on some Open Source Projects that used it. I don't like git that much. It is the only VCS that has resulted in me losing some work I had done but not commmited.
@LA-MJ8 ай бұрын
Svn and mercurial, thanks to mozilla
@adrianroldan88649 ай бұрын
Great talk, I really enjoyed. I was wondering if the virtual branch is something different to what you can achieve with `git worktree add ` ? Amazing, helpful talk. Thanks
@gitbutlerapp9 ай бұрын
It is for the same problem, but an important difference. Worktrees give you a different working directory per branch, so if you have a feature and a bugfix, you don't have anywhere where you have _both_ the feature and the bugfix in one direcotry at the same time. With GitButler you do them both in the same directory and make branches from the hunks as though you were `git add -i` each hunk and committing. In other words, we keep the work of the two branches separated in memory rather than on disk. This is very nice if you want to see how branches will work together before they're technically merged in git.
@adrianroldan88649 ай бұрын
@@gitbutlerapp thank you for the explanation. It makes sense and it's an awesome feature to have.
@webknjaz9 ай бұрын
Wow, what a great talk! I'll add it to my collection of Git learning materials!
@MJ-xg2ow6 ай бұрын
Git learning material???? REALLY? Aren't they more important things to learn in the whole world of IT????? LMAO
@webknjaz6 ай бұрын
@@MJ-xg2ow there are many important things. But being dumb and unable to use major everyday tools is not the solution.
@MJ-xg2ow6 ай бұрын
"Unable" to use major tools??? Wasting time to use git blame in cmd line to look cool while it's a click away is being Unable to learn everyday tool? I can't live without cmd myself but this is not the type of stuff one use cmd line to make their life easier....
@webknjaz6 ай бұрын
@@MJ-xg2ow if it's available in your editor, it's fine. Some features are indeed more useful when visualized. But this doesn't mean that knowing fundamentals is useless.
@Synthetica99 ай бұрын
Whoah that virtual branch stuff is exactly what I was looking for I expected you needed something like Pijul for that
@Gersberms9 ай бұрын
This is the first time I heard of porcelain commands. A quick google and... it makes sense! Part of most software is plumbing that has to work, but is ugly, and not everyday user-facing code. The nice user-interfacing stuff is porcelain.
@lerneninverschiedenenforme75139 ай бұрын
looking forward to gitbutler. awesome talk!!
@hisuomi9 ай бұрын
Hi, thanks for the session. FYI, you have a typo at 22:28
@JackEnneking8 ай бұрын
Namely `git maintainance` should be `git maintenance`.
@jlhjlh9 ай бұрын
"my voice is my passport, verify me" -- I love the reference! :D
@dc0d9 ай бұрын
Awesome talk! But I was looking forward to hear about "git worktree" too.
@fametheshit9 ай бұрын
Very nice talk, I like his energy on the topic we all use all day! Is there any source for the intro song?
@PinkPandaKatie8 ай бұрын
43:10 - Working on multiple branches at the same time / multiple indexes, heads: Isn't that what `git worktree` does? I use it quite a bit, especially if I need to make a change to one branch while I have a bunch of other uncommitted changes in my main working tree. I also use submodules - I have a lot of 3D printing projects using OpenSCAD, and I've developed a common library of functions / transformations / etc. Since OpenSCAD doesn't have a package management / dependency system like Python or NPM, I just add my common library as a submodule to each individual project.
@mrjvc9 ай бұрын
Great talk! So many new gems to add to my workflow
@KarlOlofsson9 ай бұрын
I do a lot of code review and have been saved by reflog more than I care to admit 😅
@KarlOlofsson9 ай бұрын
I jump between branches a lot and sometimes mix up where I should commit or reset lol.
@HtotheG9 ай бұрын
My friend's company is switching from SVN to Git after decades and the one piece of advice I told them was the reflog will save you from almost anything!
@KarlOlofsson9 ай бұрын
@@HtotheG I use stash a lot as well, can't be bothered to commit wip stuff all the time lol
@CrtTsai9 ай бұрын
I enjoy this talk. Thank you.
@hansvandenbogert89927 ай бұрын
the GUI vs CLI debate, I never think about that anymore since I started using Magit.
@GeFrItroger9 ай бұрын
You are hilarious!!!!!! In the positive way !!!!
@ShortCodeDev8 ай бұрын
🎯 Key Takeaways for quick navigation: 🛠️ Git configuration: Learn to set up aliases using `alias` and `git config` for better workflow customization. 🕵️ Git Blame: Utilize `git blame` with options like `-L` and `-w` to get detailed information about changes in specific lines and ignore whitespace. 🔄 Git Log Options: Explore options like `-S` for pickaxe search and `--word-diff` for word-based diffs in `git log`. 📜 Git Reflog: Leverage `git reflog` to view a log of reference updates, helpful for tracking changes, especially after operations like reset. 🔄 Reuse Recorded Resolution (`rerere`): Enable and use `rerere` to automatically handle recurring merge conflicts, saving time during rebases and cherry-picking. 🌐 New Git Branch Options: Discover the `--column` and `branch.sort` options for `git branch` to enhance the display of branch information. 🌟 Git Column Command: Learn about the new `git column` command, a simple tool to format input into columns. 🚫 Force with Lease: Familiarize yourself with the `force-with-lease` option, a safer alternative to force pushes, preventing accidental overwrites of others' changes. 🔄 Force with Lease: A safer option for force pushing in Git. It checks for stale references before pushing, making it useful for scenarios like rebasing or amending commits. 🔐 Signing Commits with SSH: Git now supports signing commits using SSH instead of GPG. This is beneficial for those facing issues with GPG and provides a similar level of security. 🛠️ Git Maintenance: Running `Git maintenance start` in your repository adds a cron job for background maintenance tasks, improving overall performance by optimizing tasks like commit graph generation and loose object collection. 📂 Large Repository Handling: Tips for handling enormous repositories, with insights from Microsoft's efforts in making Git work well for large projects like Windows. This includes features like prefetching, commit graph, file system monitoring, and partial cloning. 🏗️ Sparse Checkout: Useful for monorepos, sparse checkout allows you to clone specific directories, reducing the amount of data fetched and improving performance. 🔄 GitHub Merge Options: GitHub offers various merge types like merge commits, rebasing, and squash merging. You can enforce these standards and auto-merge pull requests based on CI status. 📝 Linear History Requirement on GitHub: GitHub allows you to enforce a linear history, rejecting pushes with merge commits. This is useful for maintaining a clean and straightforward project history. 🔄 Pull Requests with Heads: Pull requests on GitHub have corresponding refs, enabling you to pull down and merge changes directly, providing an alternative to using the GitHub interface for merging. 🔄 GitHub allows fetching from various refs directly, not just adding remotes for pull requests. 🌿 GitButler introduces virtual branches, enabling simultaneous work on multiple branches without switching. 🚀 Virtual branches in GitButler facilitate handling features and bug fixes separately without commits into the feature branch. ❓ A question is raised about Git range diff, with the speaker suggesting it's not widely used in typical workflows. 🔄 Submodules are criticized for their limitations, and the trend is shifting towards mono repos for better project management. 🛠️ Suggestions for Git improvement include the ability to work on multiple branches simultaneously and automatic recording of all changes. 🚀 The speaker discusses their preferences for using both command line and GUIs, depending on the task, with command line being faster for most operations. 🤔 Future directions for Git are explored, with emphasis on improving the user experience for modern workflows, such as multi-branch development and comprehensive change tracking.
@jesperjuhl64949 ай бұрын
Really nice talk. Thanks :)
@charlesbenca53576 ай бұрын
really an amazing speech. thanks
@wardsuleiman16405 ай бұрын
Working on multiple branches can be achieved to a certain extent by using worktree command. It will give you the ability to have multiple worktrees pointing to different branches، and the ability to switch between them while keeping the changes. It isn't the easiest to use, but better then nothing.
@KellyClowers8 ай бұрын
only thing I know for sure that was added recently was more a change, the default from 'master' to 'main' (about time!)
@luansinh05 ай бұрын
22:17 His excitement is priceless.
@codeman99-dev9 ай бұрын
I love the interactive add mention - seriously one of the three things I use `tig` for.
@nayaleezy6 ай бұрын
Because a piece of software is bloated doesn't mean I need to bloat my mind with it's bloat
@NyanCoder9 ай бұрын
I don't think I know Git. I just have enough knowledge to use it at a level that fulfills my needs
@harisonfekadu9 ай бұрын
Awesome intro 👏
@arhontra9 ай бұрын
Great lecture. Could you please share what command you used at 7:50 as bb alias to print this nice version of the branches
@artysanmobile4 ай бұрын
This is too nerd even for me, but I’m really glad they all exist.
@Leander_9 ай бұрын
Fantastic talk!
@GerbenWijnja6 ай бұрын
The recording feature would be great. We've all been there, when we did a lot of work and then accidentally deleted the code, and it wasn't added/committed yet. And you pull your hair out wonder why th you didn't commit it... and you have to rewrite everything. It would be great if git allowed you to undelete something.
@ColinRichardson9 ай бұрын
4:02 ahhh man, the plumbing commands was what I was REALLY hoping to hear more about.. I often like to temp-merge a big selection of branches together, write that to a tree, then commit the tree with a massive bunch of parents, of where I merged from.. Give myself a giant octopus merge and then throw away all the temp-merging commits, so you have a nice clean "MERGE ALL THE FEATURES AT ONCE" commit.. Looks fantastic :D
@LA-MJ8 ай бұрын
Merge does do octupus with porcelain, not sure what you mean
@movax20h9 ай бұрын
Hehe. Starting to watch the video. I am using git for 15 years (and before that hg, perforce, svn, cvs), and I would say I do not know git even on the surface. I know more about git in my company than anybody else probably, but I still would say I do not know git. And I do not want to know it.
@gitbutlerapp9 ай бұрын
I know we're doing a git client, but I do have to say that git is amazing :)
@AV-dk7pf9 ай бұрын
Same here plus sourcesafe, clearcase and tfs. Used hg for many years, wrote many extensions for it, even up-streamed some fixes in the early days when windows support was shaky. Git is the best by far.
@lpanebr9 ай бұрын
13:01 WOW! That's the way to use blame!
@squidiebah9 ай бұрын
Great session
@Raykazen9 ай бұрын
What a great talk. Thanks :)
@JohnSmith-op7ls5 ай бұрын
The fact that a nearly hour long video like this about Git even exists really shows why Git needs to be replaced by something better, something intuitive. Start by not naming commands that do different things with synonyms lol. Git is the JS of source control systems.
@vibovitold2 ай бұрын
The naming is horrible, but the list of Git wrappers trying to provide a more friendly facade over its API longer than my arm, and yet none of them have ever gained much traction. Of course it doesn't mean they aren't legitimate improvements. I would liken it to the QWERTY layout. It's demonstrably not an optimal layout, quite poor in fact, but inertia is a tremendous force, so despite -perhaps precisely because - the number of alternative layouts is huge, none of them has really caught on.
@JohnSmith-op7ls2 ай бұрын
@@vibovitold Yeah but you have to factor in the pain level and/or benefit in alternatives. Is there really a significant benefit to a different keyboard layout? Most people don’t even touch type much less do it all day long without lots of pauses. So gains for most is zero to close to zero. I think the Git tools trying to make it intuitive are pretty common. Every IDE of note has at least one, then there’s a lot of stand alone ones. Most devs aren’t using Git on the command line for sure. But even with these tools you’re still dealing with an over complicated change control system that just wasn’t designed for internal teams but for loosely collaborating groups working on OSS. For doing day job work at companies and gov orgs, it’s just not the right tool for the job but we got stuck with it till some new trendy tool comes out.
@toby9999Ай бұрын
Trying to learn Git has destroyed my brain. It's shocking.
@toby9999Ай бұрын
@@vibovitoldI use TorsoiseGit. It makes the impossible possible. I would have gone insane without it.
@maelstrom5710 күн бұрын
@@vibovitold That's not a fair comparison. There are very few people who are dissatisfied enough with QWERTY to push for a replacement. Most people seem so neutral on the topic it'll probably never cross their minds that an alternative could exist. The dissatisfaction with Git is much more tangible: I've never even used another version control tool and I still feel something better than Git should exist.
@MasterHobbitLoL8 ай бұрын
Great video
@Bobbel8888 ай бұрын
Never thought, that there were tools properly managing deconfliction, while everyone is telling about His obvious insight.
@GenshinContentHoyolab-mk4ic8 ай бұрын
thank youuuuuu I just instantly subscribed
@prafull_chavan3 ай бұрын
Thanks for the talk, many new things. I will try to incorporate some of them in my projects. P.S. He looks like pedro pascal : )
@Little-bird-told-me9 ай бұрын
Most important command I learned *git blame*
@JUMPINGxxJEFF9 ай бұрын
Nice talk, thanks
@wizpig648 ай бұрын
thanks for saving me uncountable hours!
@MaxMalm8 ай бұрын
Great talk, are the commands listed somewhere for copy/pasting?
@Fazal8289 ай бұрын
What a fun talk!
@artysanmobile4 ай бұрын
I git so much good info there.
@jessen000019 ай бұрын
Great video thanks 🎉😊
@savagepro90609 ай бұрын
Wicked fkin opening soundtrack, bombaclaat!
@sharanupst9 ай бұрын
Neat. Learned a few things. Thanks.
@Nerd39278 ай бұрын
Excellent!
@6c33339 ай бұрын
Our lead dev still makes everyone manually copy-paste code between branches because "it's better this way, trust me".
@thislooksfun19 ай бұрын
At 43:04 you said you'd like to be able to work on more than one branch at a time. What are your thoughts on git worktrees?
@gitbutlerapp9 ай бұрын
they're fine, but they're not together. "at the same time" meaning with both branches applied to the same directory. like being merged but still being able to work on them independently. this is what we do with GitButler with virtual branches.
@TheLegendaryBaum9 ай бұрын
Awesome talk!
@aram56429 ай бұрын
Had I beenin the audience, I would have asked this: I am a rebase guy, I organically hate merging master/main into my feature branch. This strategy works great as long as I work on a solo project. The moment a conversation starts and comments/requests to your changes land in, the problem kicks in. When you rebase to refresh your master/main, then git push force, the comments usually get misplaced, the refs shift, and, most of all, your reviewers lose track of what has been changed since their last visit. Is there a golden solution to that?
@gitbutlerapp9 ай бұрын
Nope. Unfortunately the best way to preserve history is by not rewriting it. You could squash merge so the whole branch becomes a single merge and try to incorporate comments as commit data, but otherwise it's quite difficult unless you just merge.
@aram56429 ай бұрын
@@gitbutlerapp Thanks for your reply. I'm at least glad I'm not overlooking anything and it's just the way it is. I hoped though, there was a piece of AI that was able to bind the overwritten history with comments ;-)
@Duiker369 ай бұрын
Rebasing is better for going main->feature, and merge is better for going feature->main. The more authors are contributing to a branch, the less you want to rebase it, and the better an explicit merge commit is for tracking. IMO.
@LA-MJ8 ай бұрын
I do rebase -i for clean history all the time. Only rebase unpushed stuff. Problem solved 🤓
@aram56428 ай бұрын
@@LA-MJ Here is the problem. If someone during PR asks you for changes then you cannot really git rebase -i anymore and group the changes with the commits where they belong. So no, the problem is not solved, your history is only neat until the original commits have been pushed, all that follows is still a mess.
@ValidatingUsername8 ай бұрын
I solved the millennium problems and quantum mechanics before learning git
@MarkusWolff9 ай бұрын
"my voice is my passport" - haha, sneaky Sneakers reference... loved that movie 😀
@animarain9 ай бұрын
I assume why the filter for clone takes "blob:none" for no blobs but "tree:0" for trees is because the first means "no blobs", but the other doesn't mean "no trees" but "root of tree", i.e. index 0.
@bdougie9 ай бұрын
Squash and merge ✊🏾
@StaffyDoo9 ай бұрын
_This is the way_
@my-curiosity9 ай бұрын
FOSDEM appears a really cool meet event :) It's a while since I saw so many "F@cking nerds" in one place 😁
@LA-MJ8 ай бұрын
There are many more in other talks that happen simultaneously. That is the fun/dilemma of Fosdem
@gitbutlerapp9 ай бұрын
If anyone has any questions or suggestions for the next version of this talk, we would love to hear them!
@ivanbessarabov6909 ай бұрын
More about CRDT stuff :)
@iflux88219 ай бұрын
Close the cameraman in a closet before next talk.
@iflux88219 ай бұрын
On a serious note, stacked PRs could be a nice topic.
@gitbutlerapp9 ай бұрын
@@ivanbessarabov690 interesting, we could do more on that. :)
@antoy3849 ай бұрын
I’m at half and you haven’t made a demo of *git-bisect* with a 300GB repository yet ;)