乐趣区

git使用

认识 git

什么是 git?

Git 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

什么是版本控制?

版本控制是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。简单的说就是管理多人协同开发项目的技术。

 实现跨区多人协同开发
追踪和记载文件的历史记录
更好的统计工作量
并行开发、提高开发效率
跟踪记录整个项目软件的开发过程
减轻开发人员的负担,节省时间

git 与 svn 的区别

svn 是集中式版本控制系统,git 是分布式版本控制系统

 集中式版本控制:所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改


分布式版本控制:客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。这类系统都可以指定和若干不同的远端代码仓库进行交互。介此,你就可以在同一个项目中,分别和不同工作小组的人相互协作。你可以根据需要设定不同的协作流程。

git 是将文件存到本地然后再推送到服务器,svn 是直接与服务器进行交互

git 可以不连网进行工作,svn 必须在连网的情况下工作

git 内容按元数据方式存储,svn 是按文件

git 只关心文件数据的整体是否发生变化,而 svn 则只关心文件内容的具体差异。git 为每个项目在根路径下建立一个.git 目录,它是 git 用来保存元数据和对象数据库的地方,该目录非常重要,每次克隆镜像仓库的时候,实际拷贝的就是这个目录里面的数据。

git 没有全局的版本号,svn 有全局版本号

git 可以任意在自己的本地版本库开启无限个分支,svn 分支是一个完整的目录,且这个目录拥有完整的实际文件

工作区

在电脑上能看到的目录。

暂存区

存放工作区未提交的改动。

工作区有一个隐藏目录.git,这个不是工作区,而是 git 的版本库;git 的版本库里存了很多东西,其中最重要的就是称为 stage 的暂存区,还有 git 为我们自动创建的第一个分支 master,以及指向 master 的一个指针叫 HEAD。git 把需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

git 配置及连接远程仓库

在 git 客户端配置本地 email 和 user,

创建本地 ssh

在 github 中添加 ssh 密钥

将 ssh 配置到 GitHub,使用命令验证是否配置成功:ssh -T git@github.com

常用的 git 操作指令

git clone

拷贝 git 仓库到本地

git log

查看所有提交过的项目版本信息

git reflog: 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)

git status

查看文件状态

git add

把改动文件提交到暂存区

git add . 把所有修改变化提交到暂存区,不包括被删除的文件
git add -A 提交所有变化

git commit

把暂存区文件提交到本地的版本库

git commit -m 'msg' 提交添加备注,smg 为备注信息
如果备注信息太多,可以通过以下形式备注:git commit -m '
    msg1
    msg2
    msg3
    '

git push

把本地版本库分支提交到远程分支

git push origin master  将本地分支推送到与之存在追踪关系的远程分支,如果该远程分支不存在,则会被新建
git pull origin test1:master  origin 主机的 test1 分支,与本地的 master 分支合并

git pull

获取远程分支更新内容

git pull origin test1 远程分支 test1 与当前分支合并

git branch

查看分支

git branch              查看本地分支
git branch -r           查看远程分支
git branch -a           查看所有分支
git branch test1        创建分支名为 test1 的本地分支
git branch -d test1     删除本地分支 test1

git checkout

切换分支

git checkout -b 创建并切换分支

git fetch

获取远程分支到本地

git fetch --all 获取所有的远程分支

git merge

合并分支

使用 git 的开发步骤(个人心得)

使用一般工作流程:

  1. git pull 更新本地的文件;如果远程修改了,需要同步远程的内容
  2. 本地在修改之后,可以通过 git status 查看修改的文件
  3. 使用 git add 添加修改的文件暂到缓冲区
  4. git commit 把暂存区内容添加到当前的工作区
  5. git push 将本地的修改提交到远程 git 服务器
退出移动版