This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
project_management:git [2010/07/05 17:48] 172.26.14.218 |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== git ====== | ||
- | git is a distributed version control system originally written by Linus Torvalds. | ||
- | |||
- | * Official homepage: http:// | ||
- | * Pro Git book: http:// | ||
- | * Cheat sheet: http:// | ||
- | * git ready: http:// | ||
- | |||
- | ====== Installing git ====== | ||
- | |||
- | ====== Migrating from SVN ====== | ||
- | * Reference: http:// | ||
- | |||
- | ===== Install git-svn ===== | ||
- | < | ||
- | |||
- | ===== Create a temp git repo ===== | ||
- | This is where we will initially copy the SVN repository. | ||
- | |||
- | < | ||
- | $ cd beca_lims_portal_temp</ | ||
- | |||
- | ==== Initialize temp git repo ==== | ||
- | |||
- | < | ||
- | |||
- | ===== Map SVN users to git ===== | ||
- | |||
- | ==== Create an authors file ==== | ||
- | /// | ||
- | < | ||
- | aorth = Alan Orth < | ||
- | root = Alan Orth < | ||
- | akihara = Absolomon Kihara < | ||
- | |||
- | ==== Tell git about your authors ==== | ||
- | < | ||
- | |||
- | ===== Populate the temp git repo ===== | ||
- | < | ||
- | |||
- | ===== Clone from the temp repo ===== | ||
- | When doing a normal git clone it will take everything we want from the temporary repository, while leaving behind all the SVN cruft that was there to support the git-svn | ||
- | |||
- | < | ||
- | $ git clone beca_lims_portal_temp beca_lims_portal</ | ||
- | |||
- | ===== See the commit history ===== | ||
- | You should see all your authors mapped from the SVN repository: | ||
- | < | ||
- | $ git log</ | ||
- | ====== Tagging ====== | ||
- | Git uses two main types of tags: lightweight and annotated. A lightweight tag is very much like a branch that doesn’t change — it’s just a pointer to a specific commit. Annotated tags, however, are stored as full objects in the Git database. They’re checksummed; | ||
- | |||
- | < | ||
- | |||
- | See: | ||
- | * http:// | ||
- | * http:// | ||
- | |||
- | ===== Tagging the current version ===== | ||
- | < | ||
- | ===== Tagging a past version ===== | ||
- | Specify a certain commit by giving the commit' | ||
- | < | ||
- | |||
- | ===== Pushing tags to origin ===== | ||
- | By default '' | ||
- | |||
- | ==== Certain tag ==== | ||
- | < | ||
- | |||
- | ==== All tags ==== | ||
- | Push all tags which are not already on the remote origin: | ||
- | < | ||
- | |||
- | ==== Reverting a file to a particular revision ==== | ||
- | If you want to revert a file in the current working revision to a past revision | ||
- | < | ||
- | |||
- | ====== Tips ====== | ||
- | |||
- | ===== Edit a commit ===== | ||
- | To edit a commit (like fixing a spelling or logic mistake): | ||
- | - Look at '' | ||
- | - Start the interactive rebase process, pasting in the characters from the ID: '' | ||
- | - Your editor will come up with several lines like '' | ||
- | - Change the word " | ||
- | - Save and quit. | ||
- | - Edit your project files to make the correction, then run '' | ||
- | - After you’ve committed the fixed version, do '' | ||
- | |||
- | ===== Assume file unchanged ===== | ||
- | Certain files, like database configuration files, need to be tracked but you don't want to push changes to the remote repo. This is different than using a '' | ||
- | |||
- | See: http:// | ||
- | |||
- | < | ||
- | |||
- | ===== Assume file changed ===== | ||
- | The opposite of the above: | ||
- | < | ||
- | |||
- | ====== Configuration ====== | ||
- | |||
- | ===== ~/ | ||
- | |||
- | ==== Set a default editor ==== | ||
- | The editor is used when you have to enter a commit message. | ||
- | < | ||
- | editor = vim</ | ||
- | ==== Colorize git output ==== | ||
- | < | ||
- | ui = auto | ||
- | [color " | ||
- | current = yellow reverse | ||
- | local = yellow | ||
- | remote = green | ||
- | [color " | ||
- | meta = yellow bold | ||
- | frag = magenta bold | ||
- | old = red bold | ||
- | new = green bold | ||
- | [color " | ||
- | added = yellow | ||
- | changed = green | ||
- | untracked = cyan</ |