This is not magic, this is GIT!
I normally write about technical features around SAP Cloud Platform, the Portal service and other SAP topics however in this case I thought I would write about my experiences around GIT and how much I have learned and enjoyed the openSAP GIT course. I have worked through a lot of the OpenSAP courses but must say this is one of the best I’ve completed and how apt given openSAP’s recent 5 year anniversary. I’ve found the openSAP GIT course amazing and it has opened my eyes to the way development teams can operate in a really efficient manner. This is an absolute MUST DO course for any one coding in SAP Web IDE. Let me also state that I’m not a developer as such although am trying to learn the trade a little. My background is more on the SAP functional side (22+ years) and of course SAP Cloud Platform and SAP Fiori however I do manage development teams so this course has been amazing.
OK – just quickly. The title of this blog I borrowed from Arnaldo Cavazos – thanks mate for this one! I owe you one! Actually probably owe you more than 1. ?
Over the last couple of years I’ve been leading development teams on major SAP Cloud Platform projects specifically using SAP Web IDE. We have used a mixture of BitBucket and the SCP Git as our tool of choice to manage the various app repositories and most of the time this has worked really well. But, I do know we have had instances where a number of us (ok, me) were confused about GIT. Some of the questions raised included: Which one is the remote repository? Do I select the Remote Branch in this case? What do the up and down arrows mean? Oh, no FastForward error again – how do I fix this? How can I tell what I coded in that commit? Do I update the Master branch now? These are only a portion of the questions that have been raised. Additionally, every time I needed to work with GIT I was wary that I did not really have a detailed understanding of the underlying options and the power that existed. I don’t think I am alone in feeling this way. This course helped me with this, big time!
I seriously did not think I would ever (in my lifetime) have the answers to these questions ? – but guess what I do!!!! Yeehah!!! And I have the openSAP course to thank for it. I am now the resident GIT expert – well I think I am anyway much to the amusement of my colleagues! I am also amazed at the amount of functionality within SAP Web IDE to manage development activities. I would be interested in knowing the percentage of features that are actually used – I know in my case (remember I’m not a developer as such!) I pretty much created local feature branches, coded the change then committed and pushed back to Develop branches in BitBucket and that was it. I estimate it was around 10% and that is being generous. Stash, Cherry Pick, Tag are just some of the features I had no idea existed. I’ve got to spend a lot of time in the Git Pane and Git History area and really liked the detail included on each commit. I can actually understand what is detailed and I am more confident now that I know what is going on.
What I have also gained from the course is the vocabulary. I now know what a Fast Forward merge is (as opposed to ignoring the FASTFORWARDMERGE error I used to receive ?). The vocabulary is good but you must have an understanding of what each concept actually means – both together provide confidence in utilising GIT and using it to your advantage. I am also now familiar with all functions available in the SAP Web IDE – and there are a heap of them. I thought I would draw this – just to highlight how many functions there are available. This is also good for me going forward – prompters for the options available and when I would use which options. For e.g., if I wanted to retain files and have them staged then I would know that the Mixed Reset option would do this. This was mainly for my benefit but thought I would share my drawing.
Figure:1 My GIT & SAP Web IDE Learnings
I will not detail each of these concepts in detail as it is better to do the full course to gain the benefit and understanding of these functions. NOTE: If you are not doing the course now it will be available in the future as an online self-paced training course at Former Member and I’ve included the link to the course below.
At the start of the course I posted on Twitter that I was firmly at the Bargaining stage of GIT. I was not joking but I was definitely frustrated by this and I knew there was more to it which is why I did the course. Let me just explain this a little more and provide a little more insight to this. Before the course, I could create local branches but specifically used the PULL request only. I never dared looked at some of the other options. I then carried out my changes in SAP Web IDE, staged them (not that I knew what this really meant) and then committed and pushed the changes. I then went to my GIT tool (we used BitBucket) and merge branches there manually – I seriously had no idea the power inside the SAP Web IDE nor the full power of GIT. I did not draw out commits nor have a plan as to how we could possibly merge multiple feature branches into the mix so I know I was always hesitant to adopt this. So, I went on my merry way knowing only the one or two features – definitely Bargaining!
Figure:2 BEFORE view – Bargaining stage of GIT
Now that I have finished Week 3 of the course I now accept and fully appreciate the power of GIT. I cannot wait to apply my new found skills to development activities going forward. I have been amazed at what is possible. With this course it has allowed me to skip right past the Depression stage of GIT and move straight to Acceptance. I am now drawing out commit options and trying to work out the best way to go to more efficiently manage the code base and commit progress. The other big take out for me is the amount I can do in my local repository. The way the course structured this was brilliant. It gave me the confidence of managing code in my local repository and know that eventually when I did want to update the remote repository that I would have no problems doing this. Previously, I always worried about the remote repository being updated correctly with the changes. I am now so comfortable with GIT I’m telling my colleagues how to do GIT, which they are appreciating very much….. ? I would also like them to do this course so they too can be firmly planted in the Acceptance stage of GIT.
Figure:3 AFTER view – Acceptance stage of GIT
My next step along this journey is to update my LinkedIn profile with GIT Master added to my skills list….maybe I will wait until I complete the final exam to do this….…lol.
One of the other fun activities I did throughout the course was to draw and I totally agree that sometimes this just makes things clearer and helps with knowing what the next step is whether that be a Fast Forward Merge, 3-way merge or Rebase. I totally agree and would suggest that development teams do this very thing. If you don’t have a drawing mechanism handy then there is assistance in the Git History Pane – this is a really great feature to try and explain what has taken place across 1 or more branches and provides alot of information on commits. Will definitely be doing both of these things going forward.
Here is an example of the Rebase example that I compiled on my iPad using the Paper application.
Figure:4 Rebase Example – My view
I will finish off by detailing one of the best practices covered in the OpenSAP course which I will keep front and centre in my mind when developing in SAP Web IDE using GIT. I detailed this in Figure 1 also.
“Don’t just act; always understand what you are doing to your local (and remote) repository, and why.” (Arnaldo Cavazos – 2018)
All of the best practices covered were great but that one resonated with me the most and definitely great advice for anyone using GIT. It resonated with me because I did just act previously, I was performing functions but did not really have the base understanding of what was taking place to both of my repositories. I am really grateful that this course was offered and excited as I can now be confident with GIT.
If you did not start this course you can view the lectures anytime (even on the plane, if you use the offline functionality in the openSAP app). If you just want to learn, you can just get stuck in. If you wish to gain certification in this course you will need a re-activation code (even better if you received a voucher for the OpenSAP 5 years anniversary). I would definitely suggest doing this one. It has been brilliant. Check it out here -> https://open.sap.com/courses/git1. The presenter Arnaldo Cavazos was one of the best as well – really engaging and interesting. It was really fun as well.
Go ahead, do yourself a favour and sign up now!
Thankyou Former Member and thanks for reading!
Hey openSAP and Arnaldo Cavazos! Do you see this? A finer success story was never written!
Phil thank you so much for sharing this incredible review! You say you’re not really a developer — maybe that’s what it takes to shine such clear light on a topic: being an “outsider.” Clearly you ARE an artist, and Arnaldo, a poet. So glad you two (and we) came together:)
Thanks Moya, appreciate the feedback. It was fun writing it and has been great fun doing the course.
Phil - thanks so much for taking the time to write this post, and for putting in the effort to get the most out of the course. Because Git is so important to SAP Cloud Platform development, being in the 'Acceptance' stage of Git increasingly is going to be a non-negotiable for many developers and functional people such as yourself. Here's hoping that this blog entry causes many developers to invest in the course, move into the 'Acceptance' phase, and consequently to make their SAP Cloud Platform development experiences orders of magnitude more productive - and fun!
P.S. your drawings are excellent - I only wish I could have drawn that well during the course lectures!
Thanks Arnaldo and totally agree. The projects I am involved in rely heavily on developers being in the 'Acceptance' stage of Git - mostly to meet the time deadlines. In my mind, any developer on a major project involving SAP Web IDE needs to do this course - almost a pre-requisite.
Thanks for the praise on the drawings - I draw a lot to understand concepts and definitely helped me during this course.
Well said, Phil Cooley. I haven't finished the course yet but I've seen enough so far to rate it as outstanding. Of all the openSAP courses I've consumed this one has the biggest potential to help developers improve their productivity. GIT is everywhere! It's already helped my understanding a great deal and, as I say, I haven't finished it yet.
I started with JavaScript after ABAP and Java and so GIT was new to me. I think other devs with a similar background will get a lot from the course.
It isn't just the excellent lectures from Arnaldo Cavazos, I think the course itself is well targeted and well conceived. There are a lot of GIT resources out there, but not focused on using Web IDE as the client. In addition, the marketing-ometer shows a reading of zero (i.e. no marketing content).
I think we should make it clear that anyone can view the lectures anytime they like (even on the plane, if you use the offline functionality in the openSAP app). The only need for the re-activation code is if you want to gain certification for the course. If you just want to learn, you can just get stuck in.
Thanks Mike Doyle - agree with all of your comments. Yes I probably did not make this clear on the post that anyone can view the lectures anytime they like. Will provide an update to the post to say this exact thing so it is clear. Will also clarify the re-activation code - you are right.
Thanks for reading by the way!
Dear Phil,
Thank you very much for your great blog about the openSAP course SAP Cloud Platform Version Control with Git.
My team and I are very thankful to hear that you rate this course excellent and that it was helpful for you.
Honestly, what else matters than if our learners benefit from learning what we teach, that they feel it is a good time invest into their (professional) future? This is what we are aiming for and what we are passionate about.
The kudos go in a first way to our experts, in this course Arnaldo Cavazos who worked very passionately with us. As well as the openSAP course project manager Michael Pflanz and all other team members who always work in the background to keep the courses and platform up and running ?
Happy learning!
Michaela
Thanks Michaela - appreciate the feedback and definitely a pat on the back to everyone involved with OpenSAP and the courses that have been provided over the last 5 years. I have said in other posts that when I started with SAP (in 1996!) alot of this was not around so the amount of information that is shared by SAP (e.g. RDS material) as well as the OpenSAP courses is seriously amazing. AND most of it is FREE which is even more amazing!
Well done to the extended team and thankyou for reading and commenting!
Thanks
Phil
After just finishing the bonus lectures on Gerrit, what else can I say than "+2" ;-). Great blog post (saves me one) and I totally agree: one of the best Open SAP courses ever made (at least in the last 5 years).
Thanks so much Arnaldo Cavazos for preparing and teaching all this stuff!
Fred
Thanks Fred for the nice feedback and agree with your statements. The hardest thing I find is time....to do all of the openSAP courses I want to do and loved the idea about reactivating courses. Brilliant!
Thanks again for reading my blog post and commenting!
Thanks
Phil
My pleasure, Fred. I'm really glad that the course was helpful - and enjoyable to you. I'm also really thankful to SAP and openSAP for giving me a chance to do this!
Best regards,
Arnaldo
Good blog post, Phil. It's great to see that Git is finding more acceptance in the SAP development world (outside of Hybris Commerce obviously, where it's been the de facto standard VCS for many years). I remember a keynote address by SAP Mentor DJ Adams (@qmacro) at the Architect & Developer Summit 2014 where he introduced a Git-based approach for Fiori development bevor the Web IDE even fully supported it.
And even though Git has been around for so long, I still find Java developers who can't answer questions like "What's the difference between rebase and merge during a pull?" in my technical interviews.
In addition to the openSAP course, I think the tutorials by Atlassian (https://www.atlassian.com/git/tutorials) are excellent to learn the concepts and command line syntax.
Thanks Matt, appreciate the feedback and the additional information re: Atlassian tutorials. I will check them out when I have time ;-). Interesting on the Java developers as this is firmly in this space so understanding Git would be an absolute must.
I agree 100% with Phil Cooley especially on the following quote
I definitely have a better understanding of the terminologies as well as different approaches to Git after taking this course. Thanks, Arnaldo Cavazos for putting together such a well-structured course to introduce Git to someone like me that's been so used to the centralized way of doing things in the ABAP world.
I am proud to be one of the 872 learners to have completed this course with a Record of Achievement (though I have to admit, I barely made it... the questions were kind of tough for me. LOL)
Thanks Alban Leong for your comments and great that you now have a better understanding, I know I do. Yes, I was also one of the 872 learners to pick up a Record of Achievement - really great course.