|
|
Line 144: |
Line 144: |
| git pull | | git pull |
| ls | | ls |
| + | |
| + | The files are now stored in the bare repository, so any new repositories that are clone from it will see the files. |
| |[[Image:GitPush.png]] | | |[[Image:GitPush.png]] |
| |} | | |} |
Revision as of 09:10, 8 July 2011
Create new Bare Repository
These steps will create a new bare repository called learningGit in ~/code/learnGit/bareRepo/.
- Create the containing directory
- Go to the correct directory
- Create a new bare repository
- Move into the new repository
- 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
|
|
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.
- Move to the appropriate directory
- Clone the initial repository
- Move into the working directory
- 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
|
|
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.
- Move to the appropriate directory
- Clone the initial repository
- Move into the working directory
- 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
|
|
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/.
- Move to the ~/code/learnGit/learningGit
- Look at the current status to see nothing.
- Create README.txt
- Create README1.txt
- 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 Another file in the repository > README1.txt
git status
Note: the files are not yet stored in the repository.
|
|
Stage the files
This step stages the addition of README.txt and README1.txt in ~/code/learnGit/learningGit/.
- Move back to the learningGit directory
- Stage the 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 status
cd ../learningGit2
git pull
ls
Note: the files are staged, but not yet stored in the ~/code/learnGit/learningGit repository.
|
|
Commit the Files
This step stores README.txt and README1.txt in the local repository.
- Move back to the learningGit directory
- Commit the files
- 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 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.
|
|
Push 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 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 origin master
git status
cd ../learningGit2
git pull
ls
The files are now stored in the bare repository, so any new repositories that are clone from it will see the files.
|
|