A Guided Tour of emacs-git (by TSKim)

Installation
Configuration
Cloning
1. Run 'git-clone'
2. Select local directory
3. Select repository
4. All things done
Importing
1. run 'git-init-from-archive'
2. Select archive file
3. If necessary, set config user.name and user.email
4. Initial commit
5. Commited result
Making changes
1. Open the file which is under the git
2. Editing sources and saving the changes
3. Commit your changes with 'C-x v v' key or 'git-commit-all'
4. All things done
Viewing project history
1. Run 'git-history' for project or 'git-log' for each file
2. 'vc-log' history browser with fancy color
Managing Branches
1. Show branchs with 'git-branch'
2. Create new branch with 'c' in git-branch buffer
3. Select the base branch
4. All things done
5. Topic : Switch to other branch
6. Topic : Delete branches
7. Topic : gitk
Tagging
1. Create new tag 'git-tag' or 'git-snapshot'
2. Input the tag
3. All things done
4. Checking out
5. Checking out to new branch
Diffing
1. Run 'git-diff'
2. Select diffing target
3. Select diffing revision
4. Ediff
Merging
1. Try to merge from other branch with 'git-merge'
2. Select target branch
3. After merge
4. 3 way merge
5. After resolving conflicts
Checking the status of the project
Run 'git-status'
Inspecting Directory
Naive command on git with '.'
Rename with 'r'
Marking with '*'
Add .gitignore with 'i'
Switching branch with 'b'
Sarcastic blame! with '?'
Summary mode with 's'

Installation

(add-to-list 'load-path "/home/tsgates/Skills/git/git-emacs-1.0")
(require 'git-emacs)

Configuration

git-config-init command
git-config-init command
Automatically set current user.name & user.email
Automatically set current user.name & user.email

Cloning

1. Run 'git-clone'

Run 'git-clone'
Run 'git-clone'

2. Select local directory

Move directory
Move directory
Select the directory to be cloned
Select the directory to be cloned

3. Select repository

Select repository
Select repository

4. All things done

Start to clone from repository
Start to clone from repository
All things done
All things done

Importing

1. run 'git-init-from-archive'

Init from archive
Init from archive

2. Select archive file

Selecting archive file
Selecting archive file

3. If necessary, set config user.name and user.email

Then, setting config user.name and user.email
Then, setting config user.name and user.email

4. Initial commit

Inital commit log
Inital commit log

5. Commited result

After commiting
After commiting

Making changes

1. Open the file which is under the git

Open the file
Open the file

2. Editing sources and saving the changes

After saving the changes
After saving the changes

3. Commit your changes with 'C-x v v' key or 'git-commit-all'

Commit your changes after editing log
Commit your changes after editing log

4. All things done

  
After commit
After commit

Viewing project history

1. Run 'git-history' for project or 'git-log' for each file

History view
History view

2. 'vc-log' history browser with fancy color

History browsing
History browsing

Managing Branches

1. Show branchs with 'git-branch'

Display branch list
Display branch list

2. Create new branch with 'c' in git-branch buffer

After pressing 'c', input the new name of the branch
After pressing 'c', input the new name of the branch

3. Select the base branch

Select the branch you want to base on
Select the branch you want to base on

4. All things done

Reload current buffer
Reload current buffer
Check see if switched to the new branch
Check see if switched to the new branch

5. Topic : Switch to other branch

  
Switch to other branch after selecting branch
Switch to other branch after selecting branch

  
Generate automatic commit log
Generate automatic commit log

  
Finally switched to 'mater'
Finally switched to 'mater'

6. Topic : Delete branches

  
Delete 'new-branch' in 'git-branch'
Delete 'new-branch' in 'git-branch'

  
Finally delete a 'new-branch'
Finally delete a 'new-branch'

7. Topic : gitk

  
Launching gitk in emacs
Launching gitk in emacs

Tagging

1. Create new tag 'git-tag' or 'git-snapshot'

Create new tag
Create new tag

2. Input the tag

Input tag name
Input tag name

3. All things done

All things done
All things done

4. Checking out

Checking out
Checking out
Checking out to new branch
Checking out to new branch

5. Checking out to new branch

Checking out to new branch
Checking out to new branch
Input the new branch name
Input the new branch name
Based on what?
Based on what?
Ok on new 'wild-idea' branch
Ok on new 'wild-idea' branch

Diffing

1. Run 'git-diff'

Run 'git-diff'
Run 'git-diff'

2. Select diffing target

Select diffing target
Select diffing target

3. Select diffing revision

Select revision
Select revision

4. Ediff

Diffing with ediff
Diffing with ediff
Diffing against HEAD~2
Diffing against HEAD~2

Merging

1. Try to merge from other branch with 'git-merge'

Run 'git-merge'
Run 'git-merge'

2. Select target branch

Select the branch to be merged
Select the branch to be merged

3. After merge

After merge, it will launch git-status mode
After merge, it will launch git-status mode

4. 3 way merge

3 way merge similar to famous 'psvn.el'
3 way merge similar to famous 'psvn.el'

5. After resolving conflicts

Return to the merged 'test.c'
Return to the merged 'test.c'

Checking the status of the project

Run 'git-status'

Git cloned directory right after cloning
Git cloned directory right after cloning

Inspecting Directory

Expanding tree or open file
Expanding tree or open file

Naive command on git with '.'

  
Git naive command
Git naive command

Rename with 'r'

Rename on marks or current item
Rename on marks or current item
After renaming all!
After renaming all!

Marking with '*'

Regular expression marking
Regular expression marking
After marking with regexp "RegNotes.*"
After marking with regexp "RegNotes.*"
* Deleting with 'd'
Delete the selected files
Delete the selected files
After deleting
After deleting

Add .gitignore with 'i'

Select files you want to ignore
Select files you want to ignore
After ignoring
After ignoring

Switching branch with 'b'

Switching branch
Switching branch
After switching branch
After switching branch

Sarcastic blame! with '?'

Open in blame mode
Open in blame mode

Summary mode with 's'

Summary the view
Summary the view