Computers - Software Hardware : Git - Version Control

Gorilla

Well-Known Member
REGISTERED MEMBER
Jan 31, 2009
2,450
1,375
General Information:

Revision control, also known as version control and source control (and an aspect of software configuration management or SCM), is the management of changes to documents, programs, large web sites and other information stored ascomputer files. It is most commonly used in software development, where a team of people may change the same files. Changes are usually identified by a number or letter code, termed the "revision number", "revision level", or simply "revision". For example, an initial set of files is "revision 1". When the first change is made, the resulting set is "revision 2", and so on. Each revision is associated with a timestamp and the person making the change. Revisions can be compared, restored, and with some types of files, merged.

In computer software engineering, revision control is any practice that tracks and provides control over changes to source code. Software developers sometimes use revision control software to maintain documentation and configuration files as well as source code.


As teams design, develop and deploy software, it is common for multiple versions of the same software to be deployed in different sites and for the software's developers to be working simultaneously on updates. Bugs or features of the software are often only present in certain versions (because of the fixing of some problems and the introduction of others as the program develops). Therefore, for the purposes of locating and fixing bugs, it is vitally important to be able to retrieve and run different versions of the software to determine in which version(s) the problem occurs. It may also be necessary to develop two versions of the software concurrently (for instance, where one version has bugs fixed, but no new features (branch), while the other version is where new features are worked on (trunk).

At the simplest level, developers could simply retain multiple copies of the different versions of the program, and label them appropriately. This simple approach has been used on many large software projects. While this method can work, it is inefficient as many near-identical copies of the program have to be maintained. This requires a lot of self-discipline on the part of developers, and often leads to mistakes. Consequently, systems to automate some or all of the revision control process have been developed.

Moreover, in software development, legal and business practice and other environments, it has become increasingly common for a single document or snippet of code to be edited by a team, the members of which may be geographically dispersed and may pursue different and even contrary interests. Sophisticated revision control that tracks and accounts for ownership of changes to documents and code may be extremely helpful or even necessary in such situations.

Revision control may also track changes to configuration files, such as those typically stored in /etc or /usr/local/etc on Unix systems. This gives system administrators another way to easily track changes made and a way to roll back to earlier versions should the need arise.


Source: http://en.wikipedia.org/wiki/Version_control
 
What is Git?

The project's webpage provides a pretty good explanation.

Git is a free & open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Every Git clone is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server. Branching and merging are fast and easy to do.

http://git-scm.com/
 
In the general text that starts the thread, one of the things mentioned is the practice of Software Configuration Management (or SCM). Well defined processes to handle configurations are a necessity to mitigate and manage software endeavors. However, they aren't confined to purposes that are so formal (e.g business/enterprise, research, etc).

An example of making git useful for everyday things scan be found in the management of what are collectively (and colloquially) known as dot files. In UNIX-y systems, a file name that begins with a dot is considered a hidden file. Since everything is a file in unix, it's no surprise that configuration files in Linux are pretty much stored the same way. What's the benefit of using git to do this? All the benefits of version control are utilized to keep precious system configuration changes that have been made by a user that are likely the result of preference and wanting to be more productive. This provides an easy way to roll back changes, branch off and experiment, and sync changes across multiple machines.

Below is an example provided by a Vim (a popular text editor) vidcast that demonstrates how to use pathogen (a vim plugin) and git/github to manage your configuration files and plugins (This is something I actually use to keep synced across my Arch Linux Desktop and Macbook):

http://vimcasts.org/episodes/synchronizing-plugins-with-git-submodules-and-pathogen/
 

Donate

Support destee.com, the oldest, most respectful, online black community in the world - PayPal or CashApp

Latest profile posts

HODEE wrote on Etophil's profile.
Welcome to Destee
@Etophil
Destee wrote on SleezyBigSlim's profile.
Hi @SleezyBigSlim ... Welcome Welcome Welcome ... :flowers: ... please make yourself at home ... :swings:
Back
Top