Git: Difference between revisions

From Wiki
No edit summary
Line 5: Line 5:
<pre>
<pre>
git init
git init
git init --bare
</pre>
</pre>
</blockquote>
</blockquote>

Revision as of 20:08, 2 September 2018

Usage

  • Create repository (on server)
git init
git init --bare
  • show changed files
git diff --cached --name-only
git diff --name-status
  • add files
git add *
  • commit changes
git commit -m "Commit-Nachricht"
git commit -a                      # includes add
git commit -am.
  • send changes to server
git push


  • get repository from server
git clone remoteurl


  • get latest changes from server
git pull

Configuration

  • post-receive hook (execute script on main git server, after receiving push): hooks/post-receive
#!/bin/bash
# unset GIT_INDEX_FILE # not needed for post-receive?
git --work-tree=/srv/targetfolder --git-dir=/home/demo/proj/.git checkout -f
or
#!/bin/bash
while read oldrev newrev ref
do
    if [[ $ref =~ .*/master$ ]];
    then
        echo "Master ref received.  Deploying master branch to production..."
        git --work-tree=/var/www/html --git-dir=/home/demo/proj checkout -f
    else
        echo "Ref $ref successfully received.  Doing nothing: only the master branch may be deployed on this server."
    fi
done
  • make executable
chmod +x post-receive


Special features

  • auto-commit when file changes
inotifywait -q -m -e CLOSE_WRITE --format="git commit -a -m 'autocommit on change' %w" file.txt | sh
or
while true; do
  inotifywait -qq -e CLOSE_WRITE ~/.calendar/calendar
  cd ~/.calendar; git commit -a -m 'autocommit on change'
done
# inotify "-r"  for recursive
or
  • etckeeper
or

Links