gitlab-org--gitlab-foss/doc/university/training/topics/getting_started.md
Evan Read d98560c1f5 Make unordered lists conform to styleguide
- Also makes other minor Markdown fixes that were near the main fixes.
2019-01-08 12:21:09 +10:00

1.7 KiB

comments
false

Getting Started


Instantiating Repositories

  • Create a new repository by instantiating it through:

    git init
    
  • Copy an existing project by cloning the repository through:

    git clone <url>
    

Central Repos

  • To instantiate a central repository a --bare flag is required.

  • Bare repositories don't allow file editing or committing changes.

  • Create a bare repo with:

    git init --bare project-name.git
    

Instantiate workflow with clone

  1. Create a project in your user namespace.
  1. Create a 'Workspace' directory in your home directory.
  2. Clone the 'training-examples' project.

Commands

mkdir ~/workspace
cd ~/workspace

git clone git@gitlab.example.com:<username>/training-examples.git
cd training-examples

Git concepts

Untracked files

New files that Git has not been told to track previously.

Working area

Files that have been modified but are not committed.

Staging area

Modified files that have been marked to go in the next commit.


Committing Workflow

  1. Edit 'edit_this_file.rb' in 'training-examples'
  2. See it listed as a changed file (working area)
  3. View the differences
  4. Stage the file
  5. Commit
  6. Push the commit to the remote
  7. View the git log

Commands

# Edit `edit_this_file.rb`
git status
git diff
git add <file>
git commit -m 'My change'
git push origin master
git log

Note

  • git fetch vs pull
  • Pull is git fetch + git merge