User Tools

Site Tools


git

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
git [2024/06/12 11:29] dblumegit [2025/11/16 23:35] (current) dblume
Line 1: Line 1:
 ====== git ====== ====== git ======
 +
 +===== Building Git =====
 +
 +In Ubuntu, get some dev libs first:
 +
 +<code bash>
 +sudo apt-get install libssl-dev libcurl4-gnutls-dev gettext
 +</code>
 +There was [[https://lore.kernel.org/git/xmqq5xg2wrd1.fsf@gitster.g/|a security fix in 2.50.1]], so here we get that one:
 +<code bash>
 +git clone --filter=blob:none -b v2.50.1 --single-branch --no-tags https://github.com/git/git
 +# or: git clone --branch v2.50.1 --depth 1 https://github.com/git/git
 +# or even: wget https://www.kernel.org/pub/software/scm/git/git-2.50.1.tar.xz
 +
 +make prefix=$HOME/.local -j$(nproc)
 +make prefix=$HOME/.local install
 +</code>
 +
 +This will put git in ''$HOME/.local/bin/''
 +
 +===== Using Git =====
  
 Make the clone of the remote repository. Make the clone of the remote repository.
Line 210: Line 231:
 git$ cd testcode.git/ git$ cd testcode.git/
 testcode.git$ git init --bare testcode.git$ git init --bare
 +testcode.git$ git config pack.threads 8  # Otherwise clone might fail with "unable to create thread"
 </code> </code>
  
Line 269: Line 291:
 git submodule update --recursive  # Add --init before --recursive on first time git submodule update --recursive  # Add --init before --recursive on first time
 </code> </code>
 +
 +====== You Don't Need GitHub ======
 +
 +[[https://medium.com/@the_atomic_architect/you-dont-need-github-your-ssh-server-is-already-a-git-host-8dd9a8c1f283|You Don’t Need GitHub: Your SSH Server Is Already a Git Host]]
 +
 +  * Set "git config receive.denyCurrentBranch updateInstead" Git blocks pushes to active branches by default. This tells it to accept them and update files automatically.
 +  * Create a .git/hooks/post-update that triggers a rebuild or restarts services.
 +  * Tell git to host the remote repo with "git update-server-info"
  
 ====== git vim mergetool on macOS ====== ====== git vim mergetool on macOS ======
git.1718216981.txt.gz · Last modified: 2024/06/12 11:29 by dblume