GIT
Jump to navigation
Jump to search
GIT NOTES
Create personal "cloneable" repository
This uses the "dual" repository method: the first repository is a bare repository is exported to the world via httpd, the second repository is where all work is done, committed. When ready, the work repository is pushed to the bare repository and becomes visible to the world.
$ cd ~/public_html/git $ git init --bare rpms.git Initialized empty Git repository in /home/olchansk/public_html/git/rpms.git/ $ cd rpms/hooks $ mv post-update.sample post-update $ chmod a+x ./post-update $ cd ~/git/ $ git clone ~/public_html/git/rpms.git rpms warning: You appear to have cloned an empty repository. $ cd rpms $ date > test $ git add test $ git commit -m"test" [master (root-commit) 9236a84] test $ git push origin master To /home/olchansk/public_html/git/rpms.git * [new branch] master -> master $ rm test $ date > test $ git add test $ git commit -m"test" [master 54a6b4e] test $ git push To /home/olchansk/public_html/git/rpms.git 9236a84..54a6b4e master -> master $ ssh to somewhere else $ git clone http://ladd00.triumf.ca/~olchansk/git/rpms.git rpms
Merge history from another git repository
$ git fetch file:///home/olchansk/sysadm/rpm/diskscrub/ master:diskscrub_merge $ git checkout master:diskscrub_merge $ mkdir diskscrub $ git add diskscrub $ git mv *.* diskscrub $ ls -la $ git status $ git commit -m"move into subdirectory" -a $ git checkout master $ ls -la $ git merge diskscrub_merge $ git log --graph $ git log --graph --oneline $ git push
Setup mirror of the ROOT git repository
ssh daqweb@ladd00 204 16:53 cd public_html/ 206 16:54 cd git/ 221 17:04 git clone --bare http://root.cern.ch/git/root.git root.git 231 17:23 cd root.git/hooks/ 233 17:23 mv post-update.sample post-update 234 17:24 chmod a+x ./post-update
Additional commands:
- fetch latest version: cd root.git; git fetch; git update-server-info
- list all version tags: cd root.git; git tag -l
- list all version branches: cd root.git; git branch
Convert ROOTANA SVN to GIT
- extract the authors list: svn log -q file:///home/daqweb/svn/rootana | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > authors.txt
- adjust authors list: vi authors.txt
(no author) = (no author) <(no author)> daqweb = Konstantin Olchanski <daqweb> lindner = Thomas Lindner <lindner> olchansk = Konstantin Olchanski <olchansk>
- run conversion: git svn clone --stdlayout -A authors.txt file:///home/daqweb/svn/rootana
- doctor the SVN revision comments: cd rootana; git filter-branch -d /tmp/tmpfs/gitrewrite --msg-filter 'sed "/git-svn-id:/s;^.*/\([^/]*\)@\([0-9]*\).*$;SVN revision: \2;"' -- --all
- new git commit messages look like this:
commit 84461b29deccf4ce82893f9275f6e44a303943c4 Author: Thomas Lindner <lindner> Date: Mon Jul 8 23:30:09 2013 +0000 Add a sleep to offline/paused display; otherwise program takes 100% of CPU... SVN revision: 133
Wisdom from ROOT
- http://root.cern.ch/drupal/content/git-howto
- http://root.cern.ch/drupal/content/git-tips-and-tricks
- http://root.cern.ch/drupal/content/suggested-work-flow-distributed-projects-nosy
- https://indico.cern.ch/getFile.py/access?contribId=0&resId=0&materialId=slides&confId=246803
BIT BUCKET
Git commands for the BitBucket
Test package committed to this repository: mscbbs
Wiki available: https://bitbucket.org/pamaudruz/mscbbs/wiki/Home
Cloning: will make a copy of the bitbucket repository on your local machine ~/mscbbs/...
password required:
git clone https://pamaudruz@bitbucket.org/pamaudruz/mscbbs.git git clone https://pamaudruz@bitbucket.org/pamaudruz/mscbbs.git/wiki
or using ssh private key (set in bitbucket.org account):
git clone git@bitbucket.org:pamaudruz/mscbbs.git git clone git@bitbucket.org:pamaudruz/mscbbs.git/wiki