谈谈分布式版本管理工具Git
一.主流的版本管理工具
目前在企业中比较主流的版本管理工具有:GIT、SVN、CVS等等。
二.什么是Git?
Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
三.Git与SVN的的主要区别?
Git是分布式版本控制系统,那么它不但和SVN一样有中央服务器,而且每个人的电脑也是一个完整的版本库,这样,工作的时候联网就不是必须的了,因为版本可以先在自己的电脑上进行管理。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给中央服务器,然后再重新去拉下代码,就可以互相看到对方的修改了。
四.如何安装Git?


sudo yum -y install git

五.Git的基本操作
git init
git add fileName1,fileName2...
git add . (添加所有已经修改的文件到暂存区)
git commit -m 'commit description'
git status
git diff fileName
git log
git reset --hard commit_version
git reset --hard HEAD^
git reflog
git branch
git branch -a
git checkout branchName
git checkout -b newBranchName
git merge branchName
git branch -D branchName
git branch -r -d origin/branch-name (只删除远程仓库test分支,本地保留)
git push origin :branch-name
git remote add origin remote_url
git push -u origin master (-u是把本地分支和远程分支做关联,第一次提交代码到新分支的时候需要,以后只需要使用git push就可以)
git clone remote_url
git stash
git stash apply
git stash pop
git remote show origin
git remote -v
git pull
27. 设置全局别名
git config --global alias.ac '!git add -A && git commit -m'
这样我们就可以直接使用:git ac 'why you modify' 就可以完成git add和git commit -m 操作
28. 删除文件
git rm file-name
29. 删除暂存区或分支上的文件,但本地工作区间保留,只是不希望这个文件被版本控制
git rm --cache file-name
30. 从远程获取最新的版本信息到本地有以下两个命令:
git fetch origin master
git pull origin master
上面的命令相当于:
git fetch origin master (从远程的origin的master主分支下载最新的版本到origin/master分支上)
git log -p master..origin/master (比较本地的master分支和origin/master分支的差别)
git merge origin/master (将远程的最新版本合并到本地)
还相当于如下:
git fetch origin master:tmp (从远程获取最新的版本到本地tmp分支)
git diff tmp (比较不同)
git merge tmp (进行合并)
现实情况下git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并.
31. rebase指定分支(把指定分支上的新提交在当前分支做一次)
git fetch
git rebase origin/branch-name
解决冲突
git add .
git rebase --continue
git push
高效撤销各个阶段的代码的方法请移步:如何高效撤销Git管理的文件在各种状态下的更改