目录
一、Git与SVN对比
SVN是 集中式版本 控制系统,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑,所以首先要从中央服务器下载最新的版本,然后开发,开发完后,需要把自己开发的代码提交到中央服务器。
集中式版本控制工具 缺点: 服务器单点故障;容错性差。
Git是分布式版本控制系统(Distributed Version Control System,简称 DVCS) ,分为两种类型的仓库: 本地仓库和远程仓库
本地仓库:是在开发人员自己电脑上的Git仓库 。
远程仓库:是在远程服务器上的Git仓库。
Clone:克隆,就是将远程仓库复制到本地。
Push:推送,就是将本地仓库代码上传到远程仓库。
Pull:拉取,就是将远程仓库代码下载到本地仓库。
Git工作流程 工作流程如下:
1.从远程仓库中克隆代码到本地仓库
2.从本地仓库中checkout代码然后进行代码修改
3.在提交前先将代码提交到暂存区
4.提交到本地仓库。本地仓库中保存修改的各个历史版本
5.修改完成后,需要和团队成员共享代码时,将代码push到远程仓库
二、Git常用命令
1、环境配置
当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息。
1)设置用户信息:
git config --global user.name “itcast”
git config --global user.email “hello@itcast.cn”
2)查看配置信息
git config --list
git config user.name
通过上面的命令设置的信息会保存在~/.gitconfig文件中
2、获取Git仓库
要使用Git对我们的代码进行版本控制,首先需要获得Git仓库
获取Git仓库通常有两种方式:
1、在本地初始化一个Git仓库。
2、从远程仓库克隆。
3、在本地初始化一个Git仓库
执行步骤如下:
1. 在电脑的任意位置创建一个空目录(例如repo1)作为我们的本地Git仓库。
2. 进入这个目录中,点击右键打开Git bash窗口。
3. 执行命令git init 如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹)则说明Git仓库创建成功。
4、从远程仓库克隆
可以通过Git提供的命令从远程仓库进行克隆,将远程仓库克隆到本地
命令形式为:git clone 远程Git仓库地址
5、工作目录、暂存区以及版本库概念
版本库:前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等。
工作目录(工作区):包含.git文件夹的目录就是工作目录,主要用于存放开发的代码。
暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存 修改文件的地方。
6、Git工作目录下文件的两种状态
Git工作目录下的文件存在两种状态:
untracked 未跟踪(未被纳入版本控制)
tracked 已跟踪(被纳入版本控制)
Unmodified 未修改状态
Modified 已修改状态
Staged 已暂存状态
这些文件的状态会随着我们执行Git的命令发生变化。
三、本地仓库操作命令
1.查看文件
git status -s
2.未跟踪状态变为已跟踪状态(加到暂存区)
git add hello.txt
3.已跟踪状态变为未跟踪状态(取消暂存)
git reset hello.txt
4.提交
git commit -m "init hello.txt"
5.删除文件(删除后需提交步骤4)
git rm hello.txt
6.将文件添加至忽略列表
先用 touch .gitignore 命令创建这个文件
然后编辑这个文件
文件类容:*.class 忽略.class结尾的
!lib.class 这个文件除外
/TODO 当前目录下 这个文件需要忽略
build/ 这个目录下的所有文件忽略
doc/*.txt 这个文件下面的txt结尾的需忽略
doc/**/*.txt
7.初始化一个仓库
git init
四、操作远程仓库
1.查看远程仓库
git remote -v
2.添加远程仓库
git remote add<shortname><url>
3.克隆
git clong url
4.移除本地远程仓库的联系
git remote rm origin
5.抓取,并合并
git fetch
git merge origin/master
6.拉取数据比5更好
git pull origin master
五、分支语句
\# 列出所有本地分支
$ git branch
\# 列出所有远程分支
$ git branch -r
\# 列出所有本地分支和远程分支
$ git branch -a
\# 切换分支
git checkout 名
推送至远程仓库分支
git push origin 名
合并分支
git merge 名
删除分支
git push
origin –d branchName