Git Workflow: Difference between revisions
Jump to navigation
Jump to search
| Line 32: | Line 32: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
$ cd /m/littledamien/littledamien_web | $ cd /m/littledamien/littledamien_web | ||
</syntaxhighlight> | |||
* To see a list of previous commits (which should include the branch names as part of the commit message): | |||
<syntaxhighlight lang="bash"> | |||
$ git log --oneline | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 39: | Line 44: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* Edit | * Edit as necessary. Then verify changed files with | ||
* | <syntaxhighlight lang="bash"> | ||
$ git status -s | |||
</syntaxhighlight> | |||
* Add edits to commit with | |||
<syntaxhighlight lang="bash"> | |||
$ git add filename.ext | |||
</syntaxhighlight> | |||
* Revert files with | |||
<syntaxhighlight lang="bash"> | |||
$ git co HEAD filename.ext | |||
</syntaxhighlight> | |||
* Verify edits with | |||
<syntaxhighlight lang="bash"> | |||
$ git diff --cached | |||
$ git diff --cached filename.ext | |||
</syntaxhighlight> | |||
* Commit the edits ('tm0001' being the branch name used to track projects) | |||
<syntaxhighlight lang="bash"> | |||
# 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 | |||
</syntaxhighlight> | |||
* Then move the commits to the main repo: | * Then move the commits to the main repo: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
$ git push ssh://[uname]@[domain].com:[port]/ | $ 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 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 21:48, 11 May 2012
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:\Gitdirectory and the Git base directory (D:\shared\git)
- A symbolic link has been created between
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