Archive:Development/Tutorials/Git: Difference between revisions

From KDE TechBase
(pre, not blockquote)
m (Reverted edits by KennethMartinez (talk) to last revision by AnneW)
 
(64 intermediate revisions by 19 users not shown)
Line 1: Line 1:
<h3>Setting up Git</h3>
__NOINDEX__
 
{{warning| This page is obsolete. Proceed to [[Development/Git]].}}
First, I started a new Git repository and added one file to it.
 
<pre>
carsten@moinmoin:~/git> git init
Initialized empty Git repository in .git/
carsten@moinmoin:~/git> echo "Test content" > testfile
</pre>
 
Now I will check what the status is. I will list one untracked file, that means the file has not yet been added to the repository.
 
<pre>
carsten@moinmoin:~/git> git status
# On branch master
#
# Initial commit
#
# Untracked files:
#  (use "git add <file>..." to include in what will be committed)
#
#      testfile
nothing added to commit but untracked files present (use "git add" to track)
</pre>
 
In the next three commands I will add the file, commit the file and then check for the status again.
 
<pre>
carsten@moinmoin:~/git> git add testfile
carsten@moinmoin:~/git> git commit
Created initial commit 246d7aa: This is the first commit
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 testfile
carsten@moinmoin:~/git> git status
# On branch master
nothing to commit (working directory clean)
</pre>
 
Ok, as you can see the file has been commited. Now I will demonstrate what happens when I am changine the contents of the file:
 
<pre>
carsten@moinmoin:~/git> echo "new content" > testfile
carsten@moinmoin:~/git> git status
# On branch master
# Changed but not updated:
#  (use "git add <file>..." to update what will be committed)
#
#      modified:  testfile
#
no changes added to commit (use "git add" and/or "git commit -a")
carsten@moinmoin:~/git> git commit -a
Created commit 14a9802: Second commit
1 files changed, 1 insertions(+), 1 deletions(-)
</pre>
 
You see that Git noticed the changes in the file. "git-commit -a" commits all changes in the repository.
 
<h3>Branches are cheap in Git</h3>
git-branch shows you the branches of the repository, the one with the '*' is the active one. So lets create a new branch called "bugfix-branch" and assume we want to fix a branch there. After this fix (in this case the new file) I will merge back all the hard work into the master branch.
 
<pre>
carsten@moinmoin:~/git> git-branch
* master
carsten@moinmoin:~/git> git branch bugfix-branch
carsten@moinmoin:~/git> git checkout bugfix-branch
Switched to branch "bugfix-branch"
carsten@moinmoin:~/git> git branch
* bugfix-branch
  master
carsten@moinmoin:~/git> echo "a second file" > newfile
carsten@moinmoin:~/git> git commit -a
# On branch bugfix-branch
# Untracked files:
#  (use "git add <file>..." to include in what will be committed)
#
#      newfile
nothing added to commit but untracked files present (use "git add" to track)
carsten@moinmoin:~/git> git add newfile
carsten@moinmoin:~/git> git commit -a
Created commit 3264357: This file is here for a demonstration of Gits branch- and merge feature
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 newfile
</pre>
 
Ok, the bug is fixed now. Next step: Checkout the master branch and merge the two branches:
 
<pre>
carsten@moinmoin:~/git> git checkout master
Switched to branch "master"
carsten@moinmoin:~/git> ls
testfile
carsten@moinmoin:~/git> git merge bugfix-branch
Updating 14a9802..3264357
Fast forward
newfile |    1 +
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 newfile
carsten@moinmoin:~/git> ls
newfile  testfile
</pre>
 
 
 
<h3>Lets now have a look at the log of the testfile</h3>
<pre>
carsten@moinmoin:~/git> git log
commit 14a9802e249413003d1fa40002baa025aa54c75f
Author: Carsten Niehaus <[email protected]>
Date:  Fri Apr 18 18:07:18 2008 +0200
 
    Second commit
 
commit 246d7aad05139314e7ff62a5becb6c930f72fb8f
Author: Carsten Niehaus <[email protected]>
Date:  Fri Apr 18 18:06:33 2008 +0200
 
    This is the first commit
</pre>

Latest revision as of 15:48, 31 July 2012

Warning
This page is obsolete. Proceed to Development/Git.