User Tools

Site Tools


services:rcs:start

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
services:rcs:start [2014/12/12 13:38] – Changed code to monospace font behrmj87services:rcs:start [2014/12/15 09:09] (current) – moved --shared switch for git init to right place behrmj87
Line 7: Line 7:
 ==== Creating the shared git repository on the server ==== ==== Creating the shared git repository on the server ====
  
-First of all, open a terminal and open an SSH connection to //login.physik.fu-berlin.de//. Then change into your group's grouphome directory using the //cd// command, e.g. ''cd /net/grouphome/ag-test''. Then issue the command ''git init --bare myrepo.git'' to create an empty git repository with the name //myrepo//:+First of all, open a terminal and open an SSH connection to //login.physik.fu-berlin.de//. Then change into your group's grouphome directory using the //cd// command, e.g. ''cd /net/grouphome/ag-test''. Then issue the command ''git init --bare --shared=true myrepo.git'' to create an empty git repository with the name //myrepo//:
  
 {{:services:rcs:git-grouphome-step1.png|}} {{:services:rcs:git-grouphome-step1.png|}}
Line 56: Line 56:
  
 ==== Collaborating with other users ==== ==== Collaborating with other users ====
 +
 +This section shall demonstrate how a second user would clone the repository from the server, make changes, commit them and eventually push them back to the repository.
 +
 +To simulate this scenario in this example, we just create a new empty folder called //repo2// where we clone a second local working copy into. This is basically the same as if a second user clones the remote repository into their home directory.
 +
 +To clone the remote repository we just created, it's best practice to specify the remote repository using the full hostname of the server (servername + domain) as well as the full path on the server (as opposed to using ''/net/grouphome/ag-test/myrepo.git''). This way, ''git'' will automatically set the proper ''remote'' entry which allows future pushes to the repository to be more convenient.
 +
 +After cloning, we change into the //myrepo// directory of the repository and verify the commit history using the already known ''git log'' command:
  
 {{:services:rcs:git-grouphome-step8.png|}} {{:services:rcs:git-grouphome-step8.png|}}
 +
 +Now, we just create a second file as described in the section above. Then use ''git status'' to verify, ''git add'' to add and ''git commit'' to commit our changes. Then we issue ''git push origin master'' to eventually push the changes to the server.
  
 {{:services:rcs:git-grouphome-step9.png|}} {{:services:rcs:git-grouphome-step9.png|}}
 +
 +Changing back to the first user who just needs to call ''git pull'' to synchronize (//pull// in git speak) the new changes and check the commit history with ''git log''.
  
 {{:services:rcs:git-grouphome-step10.png|}} {{:services:rcs:git-grouphome-step10.png|}}
 +
 +
 +
 +===== Short summary of useful git commands =====
 +
 +  * ''git init <repository>'' - create a git repository in the current folder with the name //repository// (add ''--bare'' for server repositories)
 +  * ''git clone <URL to git repository>'' - clone a local working copy of a remote repository
 +  * ''git pull'' - check the remote repository for new changes and retrieve them
 +  * ''git add <file>'' - add a new file to the git repository (requires commit)
 +  * ''git status'' - view current status of the repository including files which are untracked and files to be committed
 +  * ''git commit -m <commit message>'' - commit all staged changes
 +  * ''git stash'' - revert all changes made since the last commit were made
 +  * ''git remote'' - list and modify remote repositories
 +  * ''git branch'' - list and modify development branches
 +  * ''git diff commitID1..commitID2'' - view changes between two commits
services/rcs/start.1418391496.txt.gz · Last modified: 2014/12/12 13:38 by behrmj87

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki