Git

Aus Vosp.info
Version vom 17. Juli 2014, 17:15 Uhr von F (Diskussion | Beiträge) (Zu älterer Version zurückkehren)
Wechseln zu:Navigation, Suche

repository anlegen

mkdir neurepository.git
cd neurepository.git
git --bare init

# Dateirechte werden ignoriert
git config core.fileMode false
Initialized empty Git repository in /var/www/git/neurepository.git/

repository holen

git clone git+ssh://user@1.2.3.4:22/var/www/git/neurepository.git
Cloning into 'neurepository'...
warning: You appear to have cloned an empty repository.


beim holen eines initialisierten bare Repository

 echo README > README
 git add README
 git commit -a -m 'README'
[master (root-commit) 7301f81] README
1 file changed, 1 insertion(+)
create mode 100644 README
 git push origin master    # muss auf jeden Fall beim leeren bare Repository gemacht werden
Counting objects: 3, done.
Writing objects: 100% (3/3), 213 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To git+ssh://user@1.2.3.4:22/var/www/git/neurepository.git
* [new branch]      master -> master

Fehlermeldungen

error: insufficient permission for adding an object to repository database ./objects

Fehler

 git push origin master
error: insufficient permission for adding an object to repository database ./objects
fatal: failed to write object
error: unpack failed: unpack-objects abnormal exit

Lösung

auf dem Server Schreibrechte kontrollieren, darf der Benutzer überhaupt push'en!

 chgrp git neurepository.git/ -R
 chmod ug+rw neurepository.git/ -R

error: failed to push some refs to 'git+ssh://user@1.2.3.4:22/var/www/git/neurepository.git'

Fehler

 git push
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'git+ssh://user@1.2.3.4:22/var/www/git/neurepository.git'

Lösung

 git push origin master

notizen

 echo README > README
 git add README
 git commit -a -m 'README'
 git log
 git branch


Zu älterer Version zurückkehren

Die letzen Änderungen waren nicht so gut und mensch möchte mit einer älteren, guten Version weiter machen.

# es sollte committet UND gepusht werden, ansonsten kann der reset nicht wieder gepullt also rückgängig gemacht werden und der zwischenstand commit ist futsch!!!!!!!
git commit -a -m 'zwischenstand'
git push


#
git log

# mit folgenden ist mensch bei dem punkt wie zu <sha1> zeiten
git reset --hard <sha1>

# mit pull ist mensch raz faz wieder in der gegenwart, natürlich sollte mensch nichts verändert haben, sonst ist es wie zurück in die zukunft .. die gegenwart ist verändert
#   Achtung funktioniert natürlich nur wenn vorher der zwischenstand gepusht worden ist
git pull

letzte commit

muss noch mal kontrolliert werden !!!

git rm -r .
git commit  -a -m 'deleted'
git checkout HEAD~1

http://stackoverflow.com/questions/3380805/checkout-old-commit-and-make-it-a-new-commit

Grafische Programme

git-cola

apt-get install git-cola 
Git Cola unterstützt viele Funktionen. 


Quellen