Over a million developers have joined DZone.

Git Tutorial – My Git work flow

DZone's Guide to

Git Tutorial – My Git work flow

· DevOps Zone
Free Resource

The Nexus Suite is uniquely architected for a DevOps native world and creates value early in the development pipeline, provides precise contextual controls at every phase, and accelerates DevOps innovation with automation you can trust. Read how in this ebook.

As I promised on my previous article on Getting started with Git, here is how I use Git in my day to day activities. Rather than explaining with a real project that I’m working (which I can’t share!), I’m taking the ‘Hello World’ approach. What I’m going to do is to create a text file that contains the “hello world” and then going to track it in Git.

I assume that you have installed Git on your machine and you have the PATH environment variable updated with Git’s location. Also, I’m going to explain it with a local repository which means that I’ll be creating the repository locally instead of cloning it from some remote repository. Let’s start.

1. Git repository creation

Open a terminal or command prompt and CD to your project directory. Then give the below command.

c:\> cd vraa\projects\helloworld
C:\vraa\projects\helloworld>git init
Initialized empty Git repository in C:/vraa/projects/helloworld/.git/

Now what I did was to create a new local Git repository to track my hello world project.

2. Git configuration – user name and email (one time)

Next thing is to setup a user name and email to be used in all my git commits. This is a one time activity per Git installation.

C:\vraa\projects\helloworld> git config --global user.name "yourname"
C:\vraa\projects\helloworld> git config --global user.email "your@mail.com"

3. Add a file to Git index and check status

Let’s create a simple text file and see what Git feels about this file using git status command. Status will tell you the current status of the repository and branch details. And, in Git you don’t need to check out anything before you start working on it. Just modify the file directly and then commit the changes later.

C:\vraa\projects\helloworld> edit helloworld.txt
C:\vraa\projects\helloworld> git status
# On branch master
# Initial commit
# Untracked files:
#   (use "git add ..." to include in what will be committed)
#       helloworld.txt
nothing added to commit but untracked files present (use "git add" to track)

Ha! Git knows that there’s a file but it is not tracking it yet. Well, we’ll tell Git to track it (after all that is what Git is for!)

C:\vraa\projects\helloworld> git add .\helloworld.txt
C:\vraa\projects\helloworld> git status
# On branch master
# Initial commit
# Changes to be committed:
#   (use "git rm --cached ..." to unstage)
#       new file:   helloworld.txt

Now you can see that the status command tells you the list of files that will be committed. So, when you say git add [filename] you are asking the git to keep the file in git index and track the changes. Simple, you are staging this file for commit. Next time when you do a commit all the files that are in index will be committed.

4. Let’s commit the changes

By committing, you are moving your changes from index to the local repository. Unlike Subversion, where a commit means saving code to a central repository, in git even after a commit the code will reside in your local repo. The outside world won’t know about your changes, yet. So, you can fearlessly do as many commits as you wish.

C:\vraa\projects\helloworld> git commit -m "initial commit"
[master (root-commit) 812befb] initial commit
warning: CRLF will be replaced by LF in helloworld.txt.
The file will have its original line endings in your working directory.
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 helloworld.txt
C:\vraa\projects\helloworld> git status
# On branch master
nothing to commit (working directory clean)

So, that’s how my basic git workflow looks like. Creating a simple and committing and tracking changes using Git. In my next post, I’ll explain how I do more changes and differentiate between several file versions.


From http://veerasundar.com/blog/2011/06/git-tutorial-my-git-work-flow/

The DevOps Zone is brought to you in partnership with Sonatype Nexus.  See how the Nexus platform infuses precise open source component intelligence into the DevOps pipeline early, everywhere, and at scale. Read how in this ebook

java ,version control ,git

Opinions expressed by DZone contributors are their own.


Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.


{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}