Git: Difference between revisions
(→Usage) |
|||
Line 28: | Line 28: | ||
git commit -m "Commit-Nachricht" | git commit -m "Commit-Nachricht" | ||
git commit -a # includes add | git commit -a # includes add | ||
git commit -am. | |||
</pre> | </pre> | ||
</blockquote> | </blockquote> | ||
Line 54: | Line 55: | ||
</pre> | </pre> | ||
</blockquote> | </blockquote> | ||
== Configuration == | == Configuration == |
Revision as of 19:31, 20 February 2018
Usage
- Create repository (on server)
git init
- 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