This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
collab:git [2015/11/24 17:14] c703101 |
collab:git [2017/02/10 08:11] c703101 |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Git ====== | ====== Git ====== | ||
- | <code> | + | |
- | Update (15/03/2012): Port 2222 is depricated. All services run additionally on Port 22 | + | |
- | Update (13/03/2012): More than 5 wrong authentications yield into a 10 minute ip-address ban | + | |
- | </code> | + | |
Git is an extremely powerful and flexible revision control system, and using it effectively requires adherence to conventions. | Git is an extremely powerful and flexible revision control system, and using it effectively requires adherence to conventions. | ||
Line 9: | Line 6: | ||
* A distinct tree / a repository - is maintained for each independent (software, paper, ...) project. | * A distinct tree / a repository - is maintained for each independent (software, paper, ...) project. | ||
- | * For each repository, the mainline (master) tree is hosted on the IIS server. | + | * For each repository, the mainline (master) tree is hosted on the git.uibk.ac.at server. |
* Contributors develop locally and maintain their own trees, and push (or request to pull) only generally-useful, tried-and-proven patch sets into the main tree. | * Contributors develop locally and maintain their own trees, and push (or request to pull) only generally-useful, tried-and-proven patch sets into the main tree. | ||
* Where appropriate, multiple external developers can exchange patches among each others before committing to the mainline. | * Where appropriate, multiple external developers can exchange patches among each others before committing to the mainline. | ||
Line 55: | Line 52: | ||
- | ==== Creating a New Git Project ==== | ||
- | |||
- | To create your personal Git repository for your own, local use only: | ||
- | |||
- | cd PROJECTROOT | ||
- | git init --shared | ||
- | git add . | ||
- | git commit -m "initial import" | ||
- | |||
- | To create a Git repository on the IIS server: | ||
- | |||
- | - Decide on a name and a place for the repository under ''/projects/git/''. It should live inside the appropriate subdirectory (''papers/'', ''projects/'', etc.), and should follow the repository naming conventions. For example, repositories holding published papers should be named by [[:intranet:public:papers#publication_ids|Publication ID]]. Use ''/projects/git/personal/'' only for material that is not and will not be useful to the lab. | ||
- | - [[intranet:systems:docs:git-ssh#creating_a_shared_git_repository|Initialize]] your new repository on the lab server. | ||
- | - Inside the newly-created repository directory on the server, edit the ''description'' file. This is diplayed e.g. [[:intranet:git-repos|here]]. | ||
- | - [[#basic_workflow|Clone and populate]] your new repository. | ||
Line 93: | Line 75: | ||
| | ||
- | ==== Moving or Renaming a Git Repository ==== | ||
- | |||
- | A Git repository does not know its own name or location; it is simply identified by its location in the filesystem. It can be moved or renamed ad libitum. | ||
- | |||
- | To keep any cloned copies in sync, you have essentially two options: | ||
- | |||
- | * Commit and push everything before the move, delete the clone, move the repo on the server, and create a fresh clone. | ||
- | |||
- | * Point an existing clone to the updated location: From the root directory of the cloned tree, issue <html><pre class="code">git remote set-url origin ssh://iis.uibk.ac.at/projects/git/SUBDIR/REPONAME</pre></html> See [[http://stackoverflow.com/a/2432799|here]] and ''man git-remote'' for more information. | ||
==== Textmode Tool For Git ==== | ==== Textmode Tool For Git ==== | ||
Line 125: | Line 98: | ||
- | ==== Ssh Config ==== | + | ==== ssh Config ==== |
You could also create an ssh config file in your home-directory to shorten the git commands: | You could also create an ssh config file in your home-directory to shorten the git commands: |