If you are using Amazon EC2, and probably you have encountered the following situation: ssh: connect to host [ip address] port 22: Connection refused Normally, you would have nothing to do about it, since “having SSH connection” is your only way to get touch with the Amazon EC2 instance and its running system. So, the […]

How to Manually Symbolicate an iOS Crash Log Updated with Xcode 6 (2015-02-19) The command “symbolicatecrash” (included in Xcode) is used to symbolicare the iOS crash log. Here is the calling structure of symbolicatecrash command: symbolicatecrash crash_log dSYM_file [> output.file] The following way is also working: symbolicatecrash -o output_file crash_log dSYM_file Both of the commands […]

What is Git?

Git is a Distributed Version Control System (DVCS) written in the programming language C. Comparing to a normal Central Version Control System (CVCS), a DVCS does not have any central server which stores the data. Every local copy contains the full history of the source code.

Local and Remote Repository

In a DVCS, everyone has a complete copy of the source code (including the complete history of the source code) and can perform version control operations against this local copy. The use of a dvcs does not require a central code repository.
Git commits file changes to your local repository and you can synchronize your repository with other (remote) repositories. Git allows you to clone repositories, e.g. create an exact copy of a repository including the complete history of the source code. Owners of repositories can synchronize changes via push (transferring changes to a remote repository) or pull (getting changes from a remote repository).

Branching and Merging

Git supports branching, e.g. you can have different versions of your source code. If you want to develop a new feature, you may open a branch in your source code and make the changes in this branch without affecting the main line of your code.
Branches in Git can be local. A branch created in a repository which was cloned from another repository does not need to have a counterpart in the remote repository.
Git allows to merge changes from different branches. For example you may have a branch called master which contains the source code which you use to build your product which is delivered to your customers. You use another branch called feature_123 to finalize a certain feature and then use the Git merge command to bring the changes into your master branch.

Learn Git

There are several good places that can help you learn how to us Git.

  1. Learning tools by Github – Try Git
  2. Git documentation – Git Docs
  3. Decent Git introduction video – Power Your Workflow With Git