Difference between revisions of "Using Git Example"

From Genome Analysis Wiki
Jump to navigationJump to search
Line 59: Line 59:
 
|}
 
|}
  
== Add the First Set of Files to the Repository ==
+
== Add Files to the Repository ==
 +
This will create a couple of files in ~/code/learnGit/learningGit/.
  
There are multiple steps for adding the files:
+
The files will not show up in ~/code/learnGit/learningGit2/.
# Creating a repository with a working directory
 
# Creating the files
 
# Staging the files
 
# Committing the files
 
# Pushing the files to the bare repository.
 
  
 
{| border="1"
 
{| border="1"
|valign="top"|
 
=== Create a Working Repository ===
 
These steps will create a new working repository called learningGit in ~/code/learnGit/ that is a clone of ~/code/learnGit/bareRepo/.
 
 
# Move to the appropriate directory
 
# Clone the initial repository
 
# Move into the working directory
 
# Look at the contents (Note: in this example, learningGit has not yet had any files added to it)
 
 
cd ~/code/learnGit
 
git clone ~/code/learnGit/bareRepo/learningGit
 
cd learningGit
 
ls -a
 
|
 
[[Image:GitEmptyRepo.png]]
 
|-
 
 
|valign="top"|
 
|valign="top"|
 
=== Create the New Files ===
 
=== Create the New Files ===
These steps create README.txt and README1.txt in ~/code/learnGit/.
+
These steps create README.txt and README1.txt in ~/code/learnGit/learningGit/.
  
 +
# Move to the ~/code/learnGit/learningGit
 +
# Look at the current status to see nothing.
 
# Create README.txt
 
# Create README.txt
 
# Create README1.txt
 
# Create README1.txt
 
# Look at the git status to see 2 untracked files.
 
# Look at the git status to see 2 untracked files.
 +
# Move to the learningGit2 directory
 +
# Check that the files are not there
 +
# Check the status in learningGit2
 +
cd ~/code/learnGit/learningGit
 +
git status
 
  echo This repo is for Learning Git. > README.txt
 
  echo This repo is for Learning Git. > README.txt
 
  echo Another file in the repository > README1.txt
 
  echo Another file in the repository > README1.txt
Line 101: Line 88:
 
|valign="top"|
 
|valign="top"|
 
===Stage the files===
 
===Stage the files===
This step stages the addition of README.txt and README1.txt
+
This step stages the addition of README.txt and README1.txt in ~/code/learnGit/learningGit/.
  
 +
# Move back to the learningGit directory
 
# Stage the files
 
# Stage the files
 
# Look at the git status to see 2 staged files.
 
# Look at the git status to see 2 staged files.
 +
# Move back to the learningGit2 directory
 +
# Try to pull files
 +
# Check the contents of learningGit2 to verify the files are NOT there.
 +
cd ../learningGit
 
  git add .
 
  git add .
 
  git status
 
  git status
 +
cd ../learningGit2
 +
git pull
 +
ls
  
Note: the files are staged, but not yet stored in the repository.
+
Note: the files are staged, but not yet stored in the ~/code/learnGit/learningGit repository.
 
|[[Image:GitStageFiles.png]]
 
|[[Image:GitStageFiles.png]]
 
|-
 
|-
Line 115: Line 110:
 
This step stores README.txt and README1.txt in the local repository.
 
This step stores README.txt and README1.txt in the local repository.
  
 +
# Move back to the learningGit directory
 
# Commit the files
 
# Commit the files
 
# Look at the git status to see no uncommitted changes.
 
# Look at the git status to see no uncommitted changes.
 +
# Move back to the learningGit2 directory
 +
# Try to pull files
 +
# Check the contents of learningGit2 to verify the files are NOT there.
 +
cd ../learningGit
 
  git commit -m "Add the first files"
 
  git commit -m "Add the first files"
 
  git status
 
  git status
 +
cd ../learningGit2
 +
git pull
 +
ls
  
Note: the files are stored in the local repository, but are not yet in the bare repository.
+
Note: the files are stored in the ~/code/learnGit/learningGit repository, but are not yet in the bare repository.
 
|[[Image:GitCommit.png]]
 
|[[Image:GitCommit.png]]
 
|-
 
|-
Line 127: Line 130:
 
This step pushes the files to the bare repository.
 
This step pushes the files to the bare repository.
  
 +
# Move back to the learningGit directory
 
# Push the files without specifying the remote or branch (fails)
 
# Push the files without specifying the remote or branch (fails)
 
# Push the files specifying the remote and the branch (succeeds)
 
# Push the files specifying the remote and the branch (succeeds)
 +
# Look at the git status to see no uncommitted changes.
 +
# Move back to the learningGit2 directory
 +
# Try to pull files
 +
# Check the contents of learningGit2 to verify the files are there.
 +
cd ../learningGit
 
  git push
 
  git push
 
  git push origin master
 
  git push origin master
 +
git status
 +
cd ../learningGit2
 +
git pull
 +
ls
 
|[[Image:GitPush.png]]
 
|[[Image:GitPush.png]]
 
|}
 
|}
 
 
== Clone Pre Existing Repository  ==
 

Revision as of 09:09, 8 July 2011

Create new Bare Repository

These steps will create a new bare repository called learningGit in ~/code/learnGit/bareRepo/.

  1. Create the containing directory
  2. Go to the correct directory
  3. Create a new bare repository
  4. Move into the new repository
  5. Look at the contents of the bare repository
mkdir -p ~/code/learnGit/bareRepo/
cd ~/code/learnGit/bareRepo/
git init --bare --shared learningGit
cd learningGit
ls
CreateNewGitRepository.png

Create Working Repositories

For this example, we are going to create 2 working repositories.

This is so you can see how changes don't affect the other repositories unless pushes & pulls are done.

Create a Working Repository

These steps will create a new working repository called learningGit in ~/code/learnGit/ that is a clone of ~/code/learnGit/bareRepo/learningGit.

  1. Move to the appropriate directory
  2. Clone the initial repository
  3. Move into the working directory
  4. Look at the contents (Note: learningGit has not yet had any files added to it)
cd ~/code/learnGit
git clone ~/code/learnGit/bareRepo/learningGit
cd learningGit
ls -a

GitEmptyRepo.png

Create a Second Working Repository

These steps will create a second working repository called learningGit2 in ~/code/learnGit/ that is a clone of ~/code/learnGit/bareRepo/learningGit.


  1. Move to the appropriate directory
  2. Clone the initial repository
  3. Move into the working directory
  4. Look at the contents (Note: learningGit has not yet had any files added to it)
cd ~/code/learnGit
git clone ~/code/learnGit/bareRepo/learningGit learningGit2
cd learningGit2
ls -a

GitCreate2ndRepo.png

Add Files to the Repository

This will create a couple of files in ~/code/learnGit/learningGit/.

The files will not show up in ~/code/learnGit/learningGit2/.

Create the New Files

These steps create README.txt and README1.txt in ~/code/learnGit/learningGit/.

  1. Move to the ~/code/learnGit/learningGit
  2. Look at the current status to see nothing.
  3. Create README.txt
  4. Create README1.txt
  5. Look at the git status to see 2 untracked files.
  6. Move to the learningGit2 directory
  7. Check that the files are not there
  8. Check the status in learningGit2
cd ~/code/learnGit/learningGit
git status
echo This repo is for Learning Git. > README.txt
echo Another file in the repository > README1.txt
git status

Note: the files are not yet stored in the repository.

GitNewFiles.png

Stage the files

This step stages the addition of README.txt and README1.txt in ~/code/learnGit/learningGit/.

  1. Move back to the learningGit directory
  2. Stage the files
  3. Look at the git status to see 2 staged files.
  4. Move back to the learningGit2 directory
  5. Try to pull files
  6. Check the contents of learningGit2 to verify the files are NOT there.
cd ../learningGit
git add .
git status
cd ../learningGit2
git pull
ls

Note: the files are staged, but not yet stored in the ~/code/learnGit/learningGit repository.

GitStageFiles.png

Commit the Files

This step stores README.txt and README1.txt in the local repository.

  1. Move back to the learningGit directory
  2. Commit the files
  3. Look at the git status to see no uncommitted changes.
  4. Move back to the learningGit2 directory
  5. Try to pull files
  6. Check the contents of learningGit2 to verify the files are NOT there.
cd ../learningGit
git commit -m "Add the first files"
git status
cd ../learningGit2
git pull
ls

Note: the files are stored in the ~/code/learnGit/learningGit repository, but are not yet in the bare repository.

GitCommit.png

Push the files to the bare repository

This step pushes the files to the bare repository.

  1. Move back to the learningGit directory
  2. Push the files without specifying the remote or branch (fails)
  3. Push the files specifying the remote and the branch (succeeds)
  4. Look at the git status to see no uncommitted changes.
  5. Move back to the learningGit2 directory
  6. Try to pull files
  7. Check the contents of learningGit2 to verify the files are there.
cd ../learningGit
git push
git push origin master
git status
cd ../learningGit2
git pull
ls
GitPush.png