Page History
...
Once the code is cleaned up and we have less repositories we will move the code to the slac-lcls organization. This organization will also be used by the DAQ group and allows to group all of your code development together.
Content
Table of Contents |
---|
GitHub account
If you do not already have a GitHub account, sign up for a new account on GitHub.
Setup git
The following steps describe how to setup git. This setup has to done only once for the machine where you are planing to develop code.
...
Code Block | ||
---|---|---|
| ||
Host code.stanford.edu Hostname code.stanford.edu User git ProxyCommand ssh <your_unix_id>@psproxy nc %h %p Host github.com Hostname github.com User git ProxyCommand ssh <your_unix_id>@psproxy nc %h %p |
NOTE: make sure you "chmod 600 ~/.ssh/config", otherwise ssh will complain, bitterly.
To access GitHub repos using HTTPS, set your Git http.proxy using
Code Block | ||
---|---|---|
| ||
git config --global http.proxy http://psproxy:3128 |
Useful Commands
Check status of the repo
...
Code Block | ||||
---|---|---|---|---|
| ||||
git commit -a -m "commit message" |
Push Push commits upstream
After committing the changes into the local repository they have to be pushed upstream to make them available for the other developers.
...
This can fail if upstream is ahead of you local version. In this case you first have to get the most recent changes from upstream:
Here is a blog post that explains the difference between merge and rebase
Code Block | ||||
---|---|---|---|---|
| ||||
git fetch origin git rebase -p origin |
Resolving Conflicts
If the local commits and the commits from upstream will modify the same line in the same file, this will result in a merge conflict .
This conflict can be resolved in two different ways:
...
The conflict can be resolved by ignoring the local changes and using the version of the file from upstream
Code Block | ||||
---|---|---|---|---|
| ||||
git rebase --skip
|
This will overwrite your local changes with the upstream changes.
...
reported by the above rebase command.
It is simplest to resolve the conflict manually. The command "git diff" will show the lines that were changed locally and by the upstream version. This file can now be added to keep whatever part of the local or remote change you want.
After the merge conflict is resolved commit your changes
Code Block | ||||
---|---|---|---|---|
| ||||
git commit -a -m "commit message"
|
And then continue with the rebase and push everything upstream
Code Block | ||||
---|---|---|---|---|
| ||||
git rebase --continue
git push origin master |
Tag new release
To create a new release from the current version of the local repository and push it upstream do:
...
Afterwards just clone the new repository and the follow the workflow above
...
???
Convert svn repository to git
...