How JGit optimizes internally the configuration loading process using file snapshots and reduces unnecessary file I/O?
08 Sep 2019
Create a Git hook prepare-commit-msg for inferring JIRA ticket as commit message prefix, based on the branch name.
23 Jul 2019
Recently, I merged 20 Git repositories into a single one while keeping the history. Here's how I did it.
09 Mar 2019
Customize Git prompt to show dirty-state, untracked files, stash, upstream in your Bash console: MinGW64 (Minimalist GNU for Windows x64).
11 Nov 2018
Engineering story: how I merge two Git repositories and what are the hidden tasks you didn't think about.
06 Nov 2018
If you're using JGit for your Git server, you can combine Git config (.git/config) and a customized pre-receive hook to protect branches on a specific Git repository.
30 Jul 2018
The format of Git internal configuration file (.git/config) is very simple: it has multiple sections, each of which contains multiple options. An option is indeed a key-value pair...
29 Jul 2018
This post explains how to apply a Git reference filter to your Git server in Java. It allows you to customize Git references before sending data to clients (upload-pack).
28 Jun 2018
What happens when Git communicates over HTTP protocol? In this post, I'll intercept the HTTP traffic to discover git-receive-pack, git-upload-pack and more.
04 May 2018
A quick introduction about Git upstream tracking: set upstream with git-push or git-branch, the internal mechanism inside Git config (.git/config), unset upstream, and related implementation in Java (JGit).
02 May 2018
Git index file (.git/index) is a binary file having the following format: a 12-byte header, a number of sorted index entries, extensions, and a SHA-1 checksum. Now let's create a new Git repository, and see how index file changes when a new file is added.
28 Apr 2018
Today, I want to discuss Git internal mechanism with you: How Git resolves references? How JGit, a pure Java implementation of Git, resolves references in Java? Then, how to use them via class RevObject and its subtypes.
17 Mar 2018
Many developers use Git in their daily life. Among all the operations, branch commands might be one of the most important part. But do you know what “branch” is, and what are the secrets behind branches? This blog post will share some Git internals with you.
04 Oct 2017
A step-by-step guide for transferring a Git repository from one place to another while keeping the entirety of the data, including all branches and tags.
01 Jun 2017
Here’s the guide about how to setup a GitLab server locally using Docker under mac OS through the following steps:
- Create folder in file system to store GitLab data.
- Create GitLab container.
- Setup GitLab container.
- Setup a new user.
10 Mar 2017
Learning Git Basics.
20 Jan 2017
Git commit hook for checking the JIRA number before commiting.
08 Nov 2016