Git & Development Tricks: Github, Gitlab and more

Git & Development Tricks: Github, Gitlab and more

February 20, 2025

When I started to use Git, I could actually start see my progress and build upon my previous effort.

This is a recap of the best GIT related tricks I have so far.

Github

  1. Use vscode on the cloud with: https://github.com/codespaces/
  2. GISTS are a great way to share code: https://jalcocert.github.io/JAlcocerT/github-gists/
sudo apt install git #you need GIT first
#git remote -v

alt text

You will also need:

git config --global user.name "JAlcocerT"
git config --global user.email "youremail@example.com"

See active branch and latest commits:

#git branch
git log --oneline -n 10

Creating Releases

And given a project, you can get the latest Github release as per:

Github Actions

Using github CI/CD can be very helpful:

Github Actions MultiArch Images:

  1. With QEMU: as explained here
  2. ARM86 native builds with GHA

Since this year, 2025, we can also build ARM64 images natively with GHActions!

Github Pages

https://jalcocert.github.io/JAlcocerT/how-to-use-github-pages/

Gitlab

Not everything is Github.

There are very cool projects on Gitlab as well.

You can start by adding their extension to sync your repos:

code --install-extension gitlab.gitlab-workflow

alt text

Definitely use the extension GitLab Workflow VS Code Extension. Authenticate with OAuth.

#sudo snap install gitlab-cli
sudo snap install glab

glab auth login #you will need https://gitlab.com/-/user_settings/personal_access_tokens?page=1
glab mr list
#glab mr diff 25

VSCode

You can install it with flatpak:

flatpak install flathub com.visualstudio.code #https://flathub.org/apps/com.visualstudio.code
flatpak list --app
#flatpak list --columns=all

#flatpak uninstall com.visualstudio.code

Or with snap (which I would recommend):

sudo snap install code --classic

There are some cool extensions to help you create.

alt text

Remember that there are many cool extensions: https://marketplace.visualstudio.com/VSCode

And that they can be installed programatically:

codium --install-extension gitlab.gitlab-workflow
#code --install-extension gitlab.gitlab-workflow

Remote Development

I was discovering some vscode triks here.

The most important steps?

SSH Dev

We need this extension: https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack

ext install ms-vscode-remote.vscode-remote-extensionpack #do this one inside VSCode with CTRL+SHIFT+P
#code --install-extension ms-vscode-remote.vscode-remote-extensionpack #or this one from the terminal

Then, do CTRL SHIFT P and write: connect to host

alt text

This video summarizes it very well

When you are done, you will get the possibility to connect confortably:

alt text

Container Dev

ext install ms-vscode-remote.remote-containers #do this one inside VSCode with CTRL+SHIFT+P
#code --install-extension ms-vscode-remote.remote-containers #or this one from the terminal
sudo usermod -aG docker jalcocert
groups jalcocert

#sudo groupadd docker
#sudo usermod -aG docker $USER

This can be very useful to do Jekyll web dev as seen here

Generally, to develop inside a container: you will need one

ℹ️
For a Python Dev Container, you can get one with this docker-compose.

More VSCode extensions

#docker #https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker
ext install ms-azuretools.vscode-docker

#MDX #https://open-vsx.org/vscode/item?itemName=unifiedjs.vscode-mdx
ext install unifiedjs.vscode-mdx

#github actions https://marketplace.visualstudio.com/items?itemName=github.vscode-github-actions
ext install GitHub.vscode-github-actions #
#code --install-extension GitHub.vscode-github-actions

#slidev
ext install antfu.slidev
#code --install-extension antfu.slidev #or this one from the terminal

#python
ext install ms-python.python #https://marketplace.visualstudio.com/items?itemName=ms-python.python

#https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens
ext install eamodio.gitlens
#code --install-extension eamodio.gitlens #or this one from the terminal

#yaml https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml


#makefile #https://marketplace.visualstudio.com/items?itemName=ms-vscode.makefile-tools
ext install ms-vscode.makefile-tools

Diagrams/Wireframes…

#gemini assistant https://marketplace.visualstudio.com/items?itemName=Google.geminicodeassist

#jupyter https://marketplace.visualstudio.com/items/?itemName=ms-toolsai.jupyter


#excalidraw https://marketplace.visualstudio.com/items?itemName=pomdtr.excalidraw-editor
ext install pomdtr.excalidraw-editor

#formatter #https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode
ext install esbenp.prettier-vscode

Learnt with This one

Thanks to these devs tricks, I could put this landing theme with KeyStatic into selfhosting with my Pi.

  1. Installed Node
# Verify installation
node -v   # Should show Node.js version - 20.18.1
npm -v    # Should show npm version - 10.8.2
  1. Clone the repo and run it:
npm run dev --host #as i was using the Opi
npm run build
#npm install -g serve #serve with npm
#serve -s dist #http://localhost:3000
npx serve -s dist #http://localhost:3000

Outro

Lately, a colleague mentioned to me about: https://lovable.dev/

Lovable is an AI software engineer, which enables anyone to build for the web. Simply chat to instantly build websites and web apps, with no technical knowledge needed.

It seems this is called vibe coding!

It requires a signup, yet they provide a free tier.

Definitely have to take a look to suck tools and also to the open/local ones.

Use VSCodium via container:

#https://docs.linuxserver.io/images/docker-vscodium/#lossless-mode
#---
#version: "2.1"
services:
  vscodium:
    image: lscr.io/linuxserver/vscodium:latest
    container_name: vscodium
    cap_add:
      - IPC_LOCK
    security_opt:
      - seccomp:unconfined #optional
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /home/Docker/vscodium/config:/config
    ports:
      - 3070:3000
      - 3071:3001
    shm_size: "1gb"
    restart: unless-stopped

##localhost:3070

Weekly Planning

A proactive approach to planning, information sharing, and continuous learning:

================= WK1234 Y25 | Sprint 123ab =================

Sprint Goal: [Clearly state the overarching goal of the sprint]

Key Objectives for This Week:

  • Grooming:
    • Status: [e.g., On Track, Needs Attention]
    • Deliverables: [e.g., Backlog prioritized, X user stories refined]
  • Requirements:
    • Status: [e.g., In Progress, Blocked ⚠️]
    • Deliverables: [e.g., Y requirements documented, User journey map updated]
  • Tasks:
    • Boards:
      • DE - [Link] - Status: [e.g., X/Y tasks completed]
      • DA - [Link] - Status: [e.g., P/Q tasks in progress]
    • Individual Task Areas (SMD, Created, Validated, Documented):
      • [Consider listing a few key tasks under each with status if helpful]

Projects: [Briefly mention key projects and their current focus this week]

Learnings & Insights:

  • This Week’s Key Learnings:
    • [Bulleted list as before]

Meetings & Decisions:

  • Daily DnA: [Keep the structure as is, but consider adding key decisions or action items briefly]
  • MTG abc:
    • Summary:
    • Key Decisions: [New section]
    • Action Items (Owner - Due Date): [New section, extracted from Conclusions/NextSteps]
    • Raw Notes:

Tools & Resources: [Keep as is]

Processes & Environment: [Keep as is]

Key Contacts: [Keep as is]

Technical Reference: [Keep as is]