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 | ||
wiki:development:git [2011/08/09 08:05] morty [Maintenance] |
wiki:development:git [2011/11/02 21:46] sunweaver wiki:git renamed to wiki:development:git (Namespace cleanup) |
||
---|---|---|---|
Line 102: | Line 102: | ||
; do git clone git:// | ; do git clone git:// | ||
</ | </ | ||
+ | |||
+ | |||
===== Maintenance ===== | ===== Maintenance ===== | ||
Line 152: | Line 154: | ||
Unused feature, may come later... | Unused feature, may come later... | ||
+ | |||
+ | |||
+ | ===== Backyard ===== | ||
+ | |||
+ | < | ||
+ | |||
+ | ==== Reverting Merge Commits ==== | ||
+ | |||
+ | If you forget to run '' | ||
+ | |||
+ | There is nothing bad about merge commits apart from the fact that the X2go Git system won't allow them being pushed to the server :-/. | ||
+ | |||
+ | Thus, you probably want to avoid merge commits right from the beginning. However, from time to time it occurs that you crunch your Git log with a merge commit. This is how such a thing can happen: | ||
+ | |||
+ | * change a file | ||
+ | * commit it locally | ||
+ | * push it to X2go Git | ||
+ | * find that the push operation gets rejected :-( | ||
+ | * then run '' | ||
+ | * and then uuups... realize: the '' | ||
+ | |||
+ | One possible solution for this is // | ||
+ | |||
+ | < | ||
+ | # make a temporary backup copy of the master branch | ||
+ | $ git checkout -b master-bak-tmp | ||
+ | |||
+ | # go back to master branch | ||
+ | $ git checkout master | ||
+ | |||
+ | # and reset it to that refspec where local Git and server' | ||
+ | $ git reset --hard < | ||
+ | |||
+ | # then take a look at the log of your old local master branch | ||
+ | $ git log master-bak-tmp | ||
+ | |||
+ | # now cherry-pick your local changes individually from the master-bak-tmp branch (where refspec-1 ... refspec-n are the commit hashes of each commit): | ||
+ | $ git cherry-pick < | ||
+ | $ git cherry-pick < | ||
+ | ... | ||
+ | $ git cherry-pick < | ||
+ | |||
+ | # finally drop the tmp backup of old master | ||
+ | $ git branch -D master-bak-tmp | ||
+ | </ | ||
+ | |||
+ | ==== Pushing to X2go Git ==== | ||
+ | |||
+ | Whenever your local X2go Git project is in an acceptable state for the community, feel free to push the code to the X2go Git server: | ||
+ | |||
+ | < | ||
+ | $ git push | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | When working on master' | ||
+ | |||
+ | Keeping back code for too long can result in code conflicts (changes in the same code block of the same file by two different developers). | ||
+ | </ | ||
+ | |||
+ | The update scripts of X2go Git will shout warnings at you while pushing. These warnings relate to | ||
+ | |||
+ | * whitespaces found at the end of lines | ||
+ | * tabs found in the file (for Python: no tabs, for Bash, Perl, C++, etc. tabs are wanted, so you can ignore these if not coding Python) | ||
+ | * no \newline at end of file | ||
+ | |||
+ | You may consider silencing those warnings before committing the next time... | ||