I spent years thinking "isn't there some information I'm missing here??" before I discovered git's `diff3` conflict style. It's insane to me that git just shows you the result of each change (not what it was beforehand) by default. I don't know how anybody is merging anything like that. Vscode's merge tool makes this even easier 👍 I've been very excited seeing it roll into the product, knowing "proper" merge conflict resolution will be available to so many people now! I just wish the base view was enabled by default.
I can't tell you how many years I have tried or wanted to learn how to program just even the simplest of code but between just the terminology and gooeys of everything altogether it was such a whirlwind I could never wrap my head around it and by anytime I started making some progress whatever free trials cider video I was watching hit a massive pay wall and it was generally after hours of hard work and at that point you barely learned anything and you want to punch yourself in the mouth. What he just taught me in the last two lessons or only two lessons of this beginner tutorial for visual studio code and GitHub is it literally she'll shocking me right now in a great way and also quite a face-palming way as well as I think back of all the years of things are now making sense to me and what went wrong all those times I don't even know who to thank or how many times I could thank them for creating this video and putting it in whatever search terminology seoi happen to type today but just know I do and I'm pretty sure that feeling will grow exponentially
I released a video about how to handle a conflict on vscode like... last week! But I didn't know we had the base branch view. Thanks for sharing! Good thing that I already have a wide monitor to fit all those panels 😅
@@code Hey! That would be amazing! ❤ Acutally, I think I already replied to this comment but I suppose comments with links are automatically hidden/deleted, so... let's find another way without the link 😅 If the last comment was deleted, you can find the video on my channel, it's called: Resolve Merge Conflict in Visual Studio Code (2022 Update!) Aaaand if you have 5 more minutes, a month ago I also released a video where I introduce how to contribute to the vscode repo on github, with title: How to Contribute to Visual Studio Code - 8 PRs Accepted Thank you!!
queue 🎵 Meghan Trainor - All About That -Bass- *BASE* 😉 ( 4:18 in the video ) On topic: VS Code keeps getting better! Thanks for pointing out the "Show Base" and "Accept Combination" features. 👍
I'm pretty comfortable with using git on the terminal, but the new "Accept Combination" feature has been very helpful so far! It does feel a bit magical and I keep double-checking its results to make sure it didn't mess up, but I guess git's own automatic conflict resolution is already a piece of "magic" that I accept, so it's only fair that this is merely an extension of that. I hope this work can be upstreamed back to git!
Jetbrains IDEA has had similar merge window for about 20 years. Good job, microsoft. I don't understand why microsoft couldn't add side by side merge window to vscode from the begining.
Squashing feature branch commit is a terrible suggestion. More appropriate to reorg the commit (reword, squash etc some for better organisation). Commits serve a purpose of identifying what chunk of work was done. I would hate to review such massive commits as per suggestion...
@@zaka8315 it sure works even if changes have been pushed to remote. The issue 'can' arise if you are multiple people working on the same feature branch, but this can also be easily solved. Squashing commits on a feature branch can also come in handy. When writing code, things always get messy and changes are added, modified and removed through commits. Rebasing commits on a feature branch by squashing commits can create a cleaner history of the commits for the reviewer of the PR and those looking through the master history.
Get a conversation going about how you've been working on getting better at "threeways" and you have done them enough that you're much more comfortable with them now.
Use code lens (take current/their) & default vscode editor, it's enough, you don't need 3 window for this. To see parent use - `conflictstyle = zdiff3`
When the new merge editor came out, it seemed very confusing to me. I found it difficult to use because, the diff in vscode does not always corresponds to the exact lines of changes between local and remote, so I turned it off. I might give it another try after watching this video.
Thanks, this video does an excellent job explaining this. I never realized you could easily compare right to the base. I've always used git blame to see what each side did manually - what a chore. This will make it so much easier. Is this ability to open all four panels in Visual Studio proper?
Ah, nevermind. I had opened the file on its own. I had to open the parent repository before the button showed up. I guess that makes sense because some of the info required for 3-way diff would be in the git repo...?
Okay... I fell like I'm going crazy here, but here goes... In the code he's merging, the log will tell you that the params are all being set to equal each other, but that isn't the case in the 'current' block. By setting param1 = param2 and then changing param2 = param3, you ensure that param2 and param3 are equal, but param1 is holding the value left by param2... Am I going crazy?
My problem: Do stuff -> commit Do stuff2 -> commit Ohno, need to fix stuff in in commit. git rebase -i HEAD~2 e stuff pick stuff2 Do changes! Git commit --amend etc. CONFLICT! Now I have absolutely no idea what is meant with incoming or current. Do I always select the "best" option or what? Do I end up with stuff + things from stuff2 - commit stuff2 commit or what.. Send help.
Great explanation. But whoever invented git and the Integration in vscode didnt design it properly, its very confusing and error prone. Actually I think it should not be allowed that two peole work simulateously on the same line of code, there should be a kind of locking concept. If someone wants to edit a file it should be locked for other developers to avoid conflicts.
I think you might be missing the point a bit. There's no way of knowing who is working in the same line until there's a commit. Any implementation of that, exaggerated, would eventually just be a live coding pad. For as much as i despise the confusing nature of Git, it really is an elegant solution to this problem.
Its really bad implementation on the part of VSCode and I absolutely hate this. 1. The good functionalities are hidden inside the dropdown icon. 2. In smaller screen such as 13 inch laptop, this isn't helpful as I have to constantly scroll horizontally continuously to check the change. 3. Smart merge button is hidden. Android Studio handles this in the most efficient way by opening a window and decreasing the font size and giving all the options in the top as icons. Press smart merge and it will merge the possible merges which doesn't require your attention. Just press → to accept changes for the lines you want and x to discard them. I hope VSCode also just copies that system or gives an option to display in a seperate window.
Hi Maruf! Thank you for taking the time to make these suggestions. I've passed this on to the engineer working on the merge editor experience. We can always improve so we appreciate that you took the time to let us know what you'd like to see. Cheers!
I spent years thinking "isn't there some information I'm missing here??" before I discovered git's `diff3` conflict style. It's insane to me that git just shows you the result of each change (not what it was beforehand) by default. I don't know how anybody is merging anything like that. Vscode's merge tool makes this even easier 👍 I've been very excited seeing it roll into the product, knowing "proper" merge conflict resolution will be available to so many people now! I just wish the base view was enabled by default.
I didn't know about the "base" either until I made that video. And I've been using git for at least 10 years. Glad you like it!
I'm always amazed what VS Code can do. Can it resolve other types of conflicts? tabs vs spaces, blonds vs brunettes, Ukraine vs Russia, etc?
it has a problem with tabs vs spaces (jk), it should resolve the other conflicts fine, but will need a couple of plugins haha
I wasn’t aware of blondes vs brunettes conflict. What’s in the base branch?
Thank you Vscode team. These videos are extremely helpful. Keep making technical/educational videos
Thanks for the feedback! Glad it was helpful as it was not at all easy to make. But worth it!
You EARNED A NEW SUBSCRIBER from this immensely-useful (and timely!) video !
Well done you!
-Mark in North Aurora IL
Just learning how to turn on the base window was worth its weigh in gold. I can't believe I've missed that all this time.
I can't tell you how many years I have tried or wanted to learn how to program just even the simplest of code but between just the terminology and gooeys of everything altogether it was such a whirlwind I could never wrap my head around it and by anytime I started making some progress whatever free trials cider video I was watching hit a massive pay wall and it was generally after hours of hard work and at that point you barely learned anything and you want to punch yourself in the mouth. What he just taught me in the last two lessons or only two lessons of this beginner tutorial for visual studio code and GitHub is it literally she'll shocking me right now in a great way and also quite a face-palming way as well as I think back of all the years of things are now making sense to me and what went wrong all those times I don't even know who to thank or how many times I could thank them for creating this video and putting it in whatever search terminology seoi happen to type today but just know I do and I'm pretty sure that feeling will grow exponentially
I released a video about how to handle a conflict on vscode like... last week! But I didn't know we had the base branch view. Thanks for sharing!
Good thing that I already have a wide monitor to fit all those panels 😅
What's your video link? We'd be happy to RT or help promote. The more content the better!
@@code Hey! That would be amazing! ❤
Acutally, I think I already replied to this comment but I suppose comments with links are automatically hidden/deleted, so... let's find another way without the link 😅
If the last comment was deleted, you can find the video on my channel, it's called: Resolve Merge Conflict in Visual Studio Code (2022 Update!)
Aaaand if you have 5 more minutes, a month ago I also released a video where I introduce how to contribute to the vscode repo on github, with title: How to Contribute to Visual Studio Code - 8 PRs Accepted
Thank you!!
I love this kinda of content, being able to smootly go over git, allow me to go faster and confident.
thanks for this content, great job.
what a kind thing to say! thank you so much for the note.
queue 🎵 Meghan Trainor - All About That -Bass- *BASE* 😉 ( 4:18 in the video )
On topic: VS Code keeps getting better! Thanks for pointing out the "Show Base" and "Accept Combination" features. 👍
Oh boy! Give this man a raise 👌
I'm pretty comfortable with using git on the terminal, but the new "Accept Combination" feature has been very helpful so far! It does feel a bit magical and I keep double-checking its results to make sure it didn't mess up, but I guess git's own automatic conflict resolution is already a piece of "magic" that I accept, so it's only fair that this is merely an extension of that. I hope this work can be upstreamed back to git!
Well done video bud. Love the stickies! The new Merge tool is one of the best additions to VS code in a long time.
Hi Ray! 👋
Makes it so much simpler! Thanks for the tip!
Thanks a lot.. now my issue is resolved and understood the merge-conflict concept well.
Wonderful!
Yep, exactly the type of parties we have at the openSUSE Bar so thanks for the ammo ^-^
I also like these short bit sized videos that I don't have to set 30 minutes or more aside for.
Thanks! Those notecards with shapes on them representing commits were a great illustration.
Thanks, a sigh of relief after watching this!!!
The one that pulled the triggers for me. Well explained! 🙏
From a webstorm ide I need to change to VS Code. This explains very well on how to merge conflicts on VSCode. Thank you!
Oh, how I struggle with this. But now I understand a bit more about the dark art of merging conflicts.
Liked your presentation methods! Great to see VSC does have the base view now, but I still don't think it'll move me away from Beyond Compare!
yes, very useful feature I have been rebasing my code change every day waiting for code review.
The title of this video is actually justified. It IS extremely helpful.👍
saved me a lot of time opening the resource-consuming source tree (If and only if the project is developed under VSCode)
Now that's a title that actually fit the content ;) Cheers for the explanation
This video is a superb headache saver. Thank you!
Jetbrains IDEA has had similar merge window for about 20 years. Good job, microsoft. I don't understand why microsoft couldn't add side by side merge window to vscode from the begining.
I gave a like to this video because the visual demonstration in the beginning. 👍
This is why you should ALWAYS rebase before a PR and before merging. And... squash your feature branch commits to make any conflicts easy to resolve.
this sounds like it may be very helpful but can you please explain how a rebase and squash help with with potential merge conflicts?
Any video/article on this to refer ?
Squashing feature branch commit is a terrible suggestion.
More appropriate to reorg the commit (reword, squash etc some for better organisation).
Commits serve a purpose of identifying what chunk of work was done.
I would hate to review such massive commits as per suggestion...
What's the meaning of rebase?
@@zaka8315 it sure works even if changes have been pushed to remote. The issue 'can' arise if you are multiple people working on the same feature branch, but this can also be easily solved. Squashing commits on a feature branch can also come in handy. When writing code, things always get messy and changes are added, modified and removed through commits. Rebasing commits on a feature branch by squashing commits can create a cleaner history of the commits for the reviewer of the PR and those looking through the master history.
Get a conversation going about how you've been working on getting better at "threeways" and you have done them enough that you're much more comfortable with them now.
Great Explanation !! I could not have asked for anything better
This was EXTREMELY helpful as advertised!
This is a best video that explain how to resolve merge conflict. 👍
This was an excellent demonstration! Thank you for it.
wow the video title wasn't lying!!
Very helpful, thanks VSCode!
You are welcome, Michael M
Use code lens (take current/their) & default vscode editor, it's enough, you don't need 3 window for this.
To see parent use - `conflictstyle = zdiff3`
How did you know I like to talk about this at parties😮 are you tracking me?!
❤ The content ❤
Only git command I use from terminal is git merge --quit
For anything else I use git graph extension. It is so essential for me.
Thanks for the complete explanation.
Thank you, really helpful to understand new merge editor in vscode
Well explained . Thanks. Great job.
Awesome video. This really clear it up for me. I'll be using git in vscode a lot more than my third party git client.
Superb video!
05:41 的意思是說 當我們已經調整完(accept changes),但我們反悔,不想accept this change,我們就"remove current"
cool, if base goes in the middle, I am buying new 32 inch monitor
awesome feature 😎
Awsome video. Thank you from Spain
Toootally I will brag about this video. In fact I'm gonna share it with my team :-)
thank you , very helpful
was looking for that base, Tnx.
Now it really make sense.
When the new merge editor came out, it seemed very confusing to me. I found it difficult to use because, the diff in vscode does not always corresponds to the exact lines of changes between local and remote, so I turned it off. I might give it another try after watching this video.
I learned lots -- great video.
Fantastic explanation. Thank you!
Thank you very much!!!
Amazing. 10/10
Thanks, this is well explained 🙏
thank you , great video well explained
Thank you!
Thanks, this video does an excellent job explaining this. I never realized you could easily compare right to the base. I've always used git blame to see what each side did manually - what a chore. This will make it so much easier. Is this ability to open all four panels in Visual Studio proper?
Fantastic!
Excellent! 👍
what is extension to support this? my interface is quite different with yours. there are no option like "accept incoming change" etc.
Any strategies/suggestion for when you have thousands of merge conflicts to compare and only understand some of the commits?
This looks great but I don't see any "Resolve in Merge Editor" button - I just see the original merge conflict UI with no button.
Ah, nevermind. I had opened the file on its own. I had to open the parent repository before the button showed up. I guess that makes sense because some of the info required for 3-way diff would be in the git repo...?
Thanks Burke 🙏
Git mergetool --tool=(beyond compare/meld/ any comparison tool)
Thanks
nice explanation, but why your iris is showing square ? 😉
This seems like vscode accepting Jetbrains merge editor as the way to resolve merge conflicts
thanks this was very helpful
Thanks for this
Okay... I fell like I'm going crazy here, but here goes...
In the code he's merging, the log will tell you that the params are all being set to equal each other, but that isn't the case in the 'current' block. By setting param1 = param2 and then changing param2 = param3, you ensure that param2 and param3 are equal, but param1 is holding the value left by param2... Am I going crazy?
My problem:
Do stuff -> commit
Do stuff2 -> commit
Ohno, need to fix stuff in in commit.
git rebase -i HEAD~2
e stuff
pick stuff2
Do changes!
Git commit --amend
etc.
CONFLICT!
Now I have absolutely no idea what is meant with incoming or current. Do I always select the "best" option or what?
Do I end up with
stuff + things from stuff2 - commit
stuff2 commit
or what..
Send help.
why vscode not show conflict window ?? any help
All your base are belong to us!
Super
It's all about the base
shouldn't base be enabled by default?
Of course, I'm going to brag about this at parties.
This whole time VS Code was abstracting the base commit away from us 😂
🫣
Great explanation. But whoever invented git and the Integration in vscode didnt design it properly, its very confusing and error prone. Actually I think it should not be allowed that two peole work simulateously on the same line of code, there should be a kind of locking concept. If someone wants to edit a file it should be locked for other developers to avoid conflicts.
I think you might be missing the point a bit. There's no way of knowing who is working in the same line until there's a commit. Any implementation of that, exaggerated, would eventually just be a live coding pad. For as much as i despise the confusing nature of Git, it really is an elegant solution to this problem.
thank god for abort merge
Based
If you are saying that VS Code just now discovered the concept of base, that’s not really a positive.
code ai guide please
Git .. the Muddiest Splash Page ever made. It really doesn't need to be this cryptic and difficult to use a memory card. smh
If you like this comment like this comment, like this comment.
I really hate the new editor. Just let me edit text. I don't want to mess around with a slow, clunky interface.
Its really bad implementation on the part of VSCode and I absolutely hate this.
1. The good functionalities are hidden inside the dropdown icon.
2. In smaller screen such as 13 inch laptop, this isn't helpful as I have to constantly scroll horizontally continuously to check the change.
3. Smart merge button is hidden.
Android Studio handles this in the most efficient way by opening a window and decreasing the font size and giving all the options in the top as icons. Press smart merge and it will merge the possible merges which doesn't require your attention. Just press → to accept changes for the lines you want and x to discard them. I hope VSCode also just copies that system or gives an option to display in a seperate window.
the better option may be to just open all 4 “files” in separate windows
Hi Maruf! Thank you for taking the time to make these suggestions. I've passed this on to the engineer working on the merge editor experience. We can always improve so we appreciate that you took the time to let us know what you'd like to see. Cheers!
Sorry. You lost me on the concept. Thank you for trying though.
Hey bro what do you help me from AdSense loading or AdSense loading methods
What about Rebase ?
Thanks