Git Workflow

From Littledamien Wiki
Jump to navigation Jump to search

Overview

Git Server set up on dbarchowsky.com.

Creating a new repo out of an existing site

  • Navigate to the site's root directory.
  • Create a Git repository.
$ git init
  • Make a .gitignore file (images, wordpress install files, etc.)
  • Set username and email (necessary for each repo)
$ git config --global user.name "Damien Barchowsky"
$ git config --global user.email "dbarchowsky@gmail.com"
  • Add existing files to Git repo, confirm the list of files, and commit the changes.
$ git add .
$ git status -s
$ git commit -m "Initial version"
  • Clone the repo to 'origin'
$ cd /n/git/base_dir
$ git clone /m/base_dir/repo_dir

Working with existing projects

  • Make sure the 'dev' drive is available on the current client. See Configuration

Using 'Git Bash' navigate to the project directory.

$ cd /m/littledamien/littledamien_web
  • To see a list of previous commits (which should include the branch names as part of the commit message):
$ git log --oneline
  • Make a new Git branch
$ git co -b mynewbranch
  • Edit as necessary. Then verify changed files with
$ git status -s
  • Add edits to commit with
$ git add filename.ext
  • Revert files with
$ git co HEAD filename.ext
  • Verify edits with
$ git diff --cached
$ git diff --cached filename.ext
  • Commit the edits ('tm0001' being the branch name used to track projects)
# commit all edits
$ git commit -m "tm0001: commit message"

# switch to master branch
$ git co master

# merge edits into master branch
$ git merge tm0001

# clean up branch
$ git branch -d tm0001
  • Then move the commits to the main repo:
$ cd /n/git/littledamien/littledamien_web
$ git pull /m/littledamien/littledamien_web
$ # or 
$ git push ssh://[uname]@[domain].com:[port]/refs/littledamien/littledamien_web 
$ # or 
$ git push ssh://[uname]@[domain].com:[port]/refs/littledamien/littledamien_web master

Configuration

  • Make sure the 'dev' drive is available while working with Git Bash on the current client.
subst m: "\\littledamienii\develop"
subst n: "\\littledamienii\shared"
  • Physical origin repos located beneath d:\shared\git
  • To make a new project:
d:
cd \shared\git
git clone ..\..\develop\path\to\project_root
cd .\path\to\project_root
git init 
rem <<< is that last 'git init' step necessary ??? >>>
  • At least for now, when fetching & pulling vial ssh, the root directory is the Git install directory (C:\Git).
  • A symbolic link has been created between C:\Git directory and the Git base directory (D:\shared\git)
cd \Git
mklink /d "refs" "d:\shared\git"
rem symbolic link created for refs <<===>> d:\shared\git
  • The symbolic link allows access to the git repo via
git clone|push|pull|etc. ssh://username@server/refs/path/to/myrepo