Git is a good tool.

Source: Internet
Author: User
Tags version control system

Git is a distributed version control system, and the version control tools we use most often have SVN. Here we have to distinguish what is distributed version control system, what is centralized version control system.

Centralized version control system

Centralized versioning system (centralized version control systems, abbreviation CVCS). Such systems, such as cvs,subversion and Perforce, have a single, centrally managed server that keeps revisions of all files, while people working together connect to the server through the client, removing the latest files or submitting updates.

Advantages:

1. Everyone can see what others have done

2. Administrator administrative privileges are also relatively simple

Disadvantages:

Depending on the central server, there is a risk of a single point of failure.

1. When the central server goes down, it can't work together

2. If the file of the central server is damaged and there is no backup, the lost data cannot be retrieved.

distributed version control system

Distributed Versioning systems (distributed version control system, referred to as DVCS). In such systems, such as Git,mercurial,bazaar and Darcs, the client does not just extract the latest version of the file snapshot, but instead completely mirrors the code repository. As a result, any server that works together fails and can be recovered using any of the mirrored local repositories afterwards. Because each fetch operation is actually a full backup of the code warehouse at one time.

Advantages: 1. Suitable for distributed development, emphasizing individual

PS: Allows support for thousands of parallel development branches 2. Public server pressure and data volume are not too big 3. Fast and flexible

PS: Especially when playing the branch and tag time 4. Conflict resolution 5 can easily be resolved between any two developers. Work offline

PS: Local Warehouse

Cons: Poor code confidentiality, once the developer has cloned the entire library to fully disclose all code and version information

Branch

The most critical part of Git is branching, which means that you can detach from the development line and continue working without affecting the mainline. If you want to understand git, this is the most important, you can view the following learning materials.

Learning Resources

This article simply records some things, and does not talk about how git works, how to use, because the data is very perfect, use to view.

1. Liu Xuefeng git tutorial (Chinese)

Http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/ 0013744142037508cf42e51debf49668810645e02887691000

2. Graphic git/graphical git reference manual (understanding the principle is very useful)

http://blog.jobbole.com/22647/

3. Git official tutorial (English)

Http://git-scm.com/blog

4. Git-Generate SSH public key

-git-generated-ssh-public key on the https://git-scm.com/book/zh/v1/server

Download git

1. Windows git install package

https://git-for-windows.github.io/

2. Mac

Git install tool: http://sourceforge.net/projects/git-osx-installer/

Install via Xcode: Xcode->preferences->downloads, select "Command line Tools"

Eclipse Git

I am a lazy person, do not like to command to operate git, visual operation is what I want, so I looked for the use of the Git method on eclipse.

1. Install git plugin egit on Eclipse and use

http://yufenfei.iteye.com/blog/1750124/

2. Resolving cannot open git-upload-pack issues in Egit in eclipse

Http://www.xuebuyuan.com/1587775.html

Summarize

What version control tools are used, whether centralized or distributed, no one who absolutely replaces who, exists all the reasons, each with its own applicable scenario.

Appendix

Here are some commands that come from training tutorials to create a git repository to initialize the GIT repository

$ git init  

Configure user Information

$ git config user. name ' someguy ' $ git config user.email ' [email protected] '

Add a file to create a file

Touch readme.md

View the current status of the warehouse

$ git status

Add files to Staging area

$ git Add.

Submit staging Area file to warehouse

File

Commit Modifications add modifications to staging area

$ git Add readme.md

Commit the changes in staging area to the warehouse

$ git commit-m ' edit readme.md '

undo Undo Add to Staging area operation

$ git reset HEAD readme.md

Undo the changes you made to the file

$ git checkout-readme.md

Commit the changes in staging area to the warehouse

$ git commit-m ' edit readme.md '

version rollback view commit history

$ git log

Back to the last commit

$ git reset--hard readme.md

Returns the most recent commit

$ git reset--hard 0ff9

link to remote repository add remote Warehouse

$ git Remote add origin [email protected]:gongke/gitlession.git

Submit code to the local repository

$ git commit-a-M ' will commit to remote '

Pushes the local master branch to the remote Origin branch and establishes a connection with it

$ Git push-u Origin Master

Commit, merge branches on a branch modify several files, submit

$ git commit

Switch back to the master branch

$ git Checkout Master

Merging branches

$ git Merge dev

Delete Branch

$ git branch-d dev

conflicting merge create a new branch and switch to it

$ git checkout-b new_feature

Merging branches

$ git Merge new_feature

If there is no conflict, it will automatically generate a commit if a conflict occurs, you need to resolve the conflict manually, and then submit

$ git add conflict_filegit commit-m ' conflict solved '

Create labels by playing labels

git tag v1. 0git tag-a v1.  1-m '1.1 released! '   

View Tags

git tag

Delete a label

Git tag-d v1. 0

Push the label to the remote

git push  --tag

This article for the original article, reproduced please retain the original source, convenient traceability, if there is the wrong place, thank you correct. This address: http://www.cnblogs.com/lovesong/p/5042155.html

Git is a good tool (GO)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.