User Tools

Site Tools


version_control:git_basics

Git Basics

Clarification

Basic operations

  • Create a git repository in the current directory:
    git init
  • Create a new directory with a git repository in it:
    git init directory-name
  • Stage a changed file or a new file for the next commit:
    git add filename
  • Stage all changed and new files for the next commit:
    git add .
  • Unstage a file you have staged for the next commit:
    git rm --cached filename
  • Commit the staged files:
    git commit -m "A message about this commit."
  • Get status of repository:
    git status
  • Get history of repository:
    git log
  • Delete a file:
    git rm filename
  • Rename or move a file:
    git mv source destination

Use the git rm and git mv commands to delete and move/rename files instead of the Windows Explorer, the Finder in macOS, your Linux file manager, or other shell commands. Doing so will simplify staging.

Branching and merging

  • A git repository has a default branch called master.
  • To create a new branch:
    git branch branch-name
  • Switch to an existing branch:
    git checkout branch-name
  • Create a new branch and immediately switch to it:
    git checkout -b branch-name
  • Merge changes in another branch into the current branch:
    git merge branch-name
  • Delete a branch that you're not currently in:
    git branch -d branch-name

Ignoring files

  • To make git ignore some files in your project, create a .gitignore file in the project directory.
    .gitignore
    # Ignore specific files
    nastyfile.txt
    another-nastyfile.docx
     
    # Ignore compiled file(s)
    *.exe
    *.o
     
    # Ignore all files in directory foo
    foo/*

The file name must be .gitignore, not .gitignore.txt or gitignore.txt. To create a .gitignore file in Windows, open the Git Bash shell in the directory where you want the file and enter:

touch .gitignore

GUI interface

  • git gui: opens a GUI for performing common git functions.
  • gitk: opens a GUI commit browsing tool.
  • Lots of other third party Git tools are available.

More git stuff

version_control/git_basics.txt · Last modified: 2020/09/25 23:10 by mithat