一.主流的版本管理工具

  目前在企业中比较主流的版本管理工具有:GIT、SVN、CVS等等。

二.什么是Git?

  Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

三.Git与SVN的的主要区别?

  

  Git是分布式版本控制系统,那么它不但和SVN一样有中央服务器,而且每个人的电脑也是一个完整的版本库,这样,工作的时候联网就不是必须的了,因为版本可以先在自己的电脑上进行管理。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给中央服务器,然后再重新去拉下代码,就可以互相看到对方的修改了。

  SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就尴尬了。

四.如何安装Git?

1. windows下安装git

  在网上下载如下图所示的安装文件
   
  进行默认安装以后,就会在开始菜单中找到如下图所示的客户端快捷方式
  
2. linux下安装git
sudo yum -y install git
3. 安装成功后,还需要进行如下设置:
因为git是分布式版本控制系统,所以安装成功首先设置一个用户名和一个邮箱作为一个标识.
4. 注意:git config –global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。

五.Git的基本操作

1. 版本库

  版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”.
2. 创建版本库(初始化)
git init
这时候你当前目录下会多一个.git的目录,这个目录是Git来跟踪管理版本的,没事千万不要手动乱改这个目录里面的文件,否则会把git仓库给破坏了.
3. 说明
  首先要明确下,所有的版本控制系统,只能跟踪文本文件的改动,比如txt文件,网页,所有程序的代码等,Git也不列外,版本控制系统可以告诉你每次的改动,但是图片,视频这些二进制文件,虽能也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是知道图片从1kb变成2kb,但是到底改了啥,版本控制也不知道。
4. 添加文件到暂存区
git add fileName1,fileName2...
git add . (添加所有已经修改的文件到暂存区)
5. 提交暂存区文件到本地仓库
git commit -m 'commit description'
6. 查看暂存区状态

git status
7. 查看暂存区中代码的改变

git diff fileName
8. 查看暂存区的提交日志

git log
9. 回退已提交到暂存区但尚未push到远程仓库的代码

git reset --hard commit_version
其中commit_version就是通过日志看到的每次提交的全局唯一版本号
10. 回退到上一版本

git reset --hard HEAD^
11. 查看暂存区内容

git reflog
12. 查看当前分支,其中前面有*符号的表示当前分支

git branch
13. 查看远程分支信息
git branch -a
14. 切换分支

git checkout branchName
15. 新建分支

git checkout -b newBranchName
16. 合并分支

git merge branchName
17. 删除本地分支

git branch -D branchName
18. 删除远程分支
git branch -r -d origin/branch-name (只删除远程仓库test分支,本地保留)
git push origin :branch-name
19. 添加远程仓库位置

git remote add origin remote_url
这样我们就指定了当前git的远程仓库地址。
20. push本地代码到远程仓库

git push -u origin master (-u是把本地分支和远程分支做关联,第一次提交代码到新分支的时候需要,以后只需要使用git push就可以)
注:-u 等于 git push --set-upstream origin branch-name
21. 克隆远程仓库代码到本地

git clone remote_url
22. 隐藏本地修改到缓存区

git stash
23. 恢复缓存区中的修改
  1).恢复修改,且不删除stash内容

git stash apply
  2).恢复以后,直接删除stash内容
git stash pop
24. 查看远程仓库信息

git remote show origin
25. 查看远程仓库的详细信息

git remote -v
26. 拉取远端最新代码

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管理的文件在各种状态下的更改

六.总结

  到这里,我们就对git的使用以及与svn的不同有了一个大致的了解,这可以帮助我们很好的使用git,并且让我们可以应对大多数开发中使用的情况,下次有机会我们再来聊一聊gitflow以及我们公司使用的变种来更好地促进团队协助开发以及分支管理。

谈谈分布式版本管理工具Git的更多相关文章

  1. 分布式版本管理工具 git常用命令

    Git global setup git config --global user.name "joey" git config --global user.email " ...

  2. 版本管理工具Git(1)带你认识git

    简介 本篇将带领大家认识,git.github,让大家对git有基本的认识:下面将持续更新几篇文章来介绍git,见git导航: 下一篇中将讲解git的安装及使用: Git系列导航 版本管理工具Git( ...

  3. 版本管理工具Git(一)简要介绍

    版本管理工具不但可以备份而且还能记录版本,也就是同一个东西不同时期的状态同时可以跟踪追溯.版本管理工具由CVS.SVN.Git.GitHub. 最早的版本管理工具CVS,因为多人开发项目导致工作很难协 ...

  4. 痞子衡嵌入式:备受开源社区推崇的分布式版本控制工具(Git)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是分布式版本控制工具Git. 1.为什么需要版本控制系统? 单人软件项目开发过程,往往很多功能都是逐步增加的,在代码开发过程中,有的时候功 ...

  5. 强大得分布式项目管理工具Git

    ---恢复内容开始--- 强大的分布式管理工具-Git(一) 前言:最近忙着写项目,在期间呢,用的是git管理,由于一个项目的管理是很重要得,所以整理了一篇关于git得博客跟大家分享一下.大家都知道, ...

  6. linux系统下使用流行的版本管理工具 Git

    前几天被版本管理困扰了好久,主要是因为 没法回到之前的版本,新版本又出了问题真的很尴尬. 终于决定使用目前网上很火的版本管理工具-------Git 历史啥的就不说了,说些有用的. 我用的是oschi ...

  7. 版本管理工具Git(2)git的安装及使用

    下载安装git 官方下载地址:https://git-scm.com/download/win 这里以windows为例,选择正确的版本: 验证是否安装成功,右键菜单中会出现如下菜单: Git工作流程 ...

  8. 版本管理工具Git(2)git的使用

    上一篇带大家认识了Git,在本篇中将讲解Git的安装及使用: Git系列导航 版本管理工具Git(1)带你认识git 版本管理工具Git(2)git的安装及使用 版本管理工具Git(3)VS下如何使用 ...

  9. 版本管理工具Git(3)VS2013下如何使用git

    Git系列导航 版本管理工具Git(1)带你认识git 版本管理工具Git(2)git的安装及使用 版本管理工具Git(3)VS下如何使用git VS下创建项目 vs中新建项目MyGitTest201 ...

随机推荐

  1. python数据库学习--Mysql

    摘要: Python使用mysql需要安装驱动,有两种1)mysqldb 2)umysql  ,两者都是开源,具体区别不详,umysql没用过 一.mysqldb 安装MySQL驱动--http:// ...

  2. CentOS 7.3.1611系统安装配置图解教程

    操作系统:CentOS 7.3.1611 IP地址:192.168.21.130 网关:192.168.21.2 DNS:8.8.8.8 8.8.4.4 备注: CentOS 7.x系列只有64位系统 ...

  3. tcp netstat用法 TIME_WAIT状态解析 MTU以及MSS

    带着问题写博客 问题1:使用netstat查看有源TCP连接的状态时,经常会看到established状态,那么还有哪些状态,这些状态是如何变化的呢? 问题2:TIME_WAIT状态存在的必要? 问题 ...

  4. Java中使用POI读取大的Excel文件或者输入流时发生out of memory异常参考解决方案

    注意:此参考解决方案只是针对xlsx格式的excel文件! 背景 前一段时间遇到一种情况,服务器经常宕机,而且没有规律性,查看GC日志发生了out of memory,是堆溢出导致的,分析了一下堆的d ...

  5. Linux服务器中安装Oracle

    笔者手动安装成功 一,oracle安装前的准备与配置 1,修改stsctl.conf文件 Linux是为小文件设计的,Oracle数据库安装需要占用较多资源,要把各项参数调大. 使用vi编辑/etc/ ...

  6. Android对话框和帧动画

    Android对话框 在一个例子中展示四种对话框. 设置四个按钮 <LinearLayout xmlns:android="http://schemas.android.com/apk ...

  7. OOP in Javascript

    写了几篇Vue入门的内容了,今天写点其它的放松一下,简单讲讲javascript中的面相对象. 在面向对象的语言中,都有类的概念,当然es6中开始javascript中也有类的概念了,这里以es5为基 ...

  8. 有时在UIWindow上添加遮罩层不成功的原因

    程序启动后,初始化window,初始化controller,加载试图,这三个方法的顺序是嵌套的 类似于: - (id) initWindow {[self initController];} 而我在i ...

  9. 从.net到java,记录下这三个月的工作

    从事.NET开发已经4个年头,经过十余个项目的学习与沉淀,终于有了一套自己熟悉并且相对完善的技术体系,面对未知,不再惧怕.期间完成并广泛用于公司项目的作品包括: abp的二次开发框架BodeAbp 基 ...

  10. Boyer-Moore Majority Vote Algorithm

    介绍算法之前, 我们来看一个场景, 假设您有一个未排序的列表.您想知道列表中是否存在一个数量占列表的总数一半以上的元素, 我们称这样一个列表元素为 Majority 元素.如果有这样一个元素, 求出它 ...