git的学习与使用

一. GIT和SVN的区别

1. GIT是分布式的,SVN不是 2. GIT分支和SVN的分支不同

3. GIT把内容按元数据方式存储,而SVN是按文件

二. 理解git、gitlab和github的区别

Git:是一种版本控制系统,是一个命令,是一种工具

Github:是一个基于git实现的在线代码仓库,包含一个网站界面,向互联网开放

Gitlab:是一个基于git实现的在线代码仓库软件,你可以用gitlab自己搭建一个类似于github一样的系统,一般用于在企业、学校等内部网络搭建git私服

三. 理解git的基本工作流程

Workspace:工作区 Index / Stage:暂存区

Repository:仓库区(或本地仓库) Remote:远程仓库

四. 新建代码库:

# 在当前目录新建一个Git代码库 $ git init

# 下载一个项目和它的整个代码历史 $ git clone http://ip/root/study.git # 下载master分支和它的代码历史

$ git clone –b master http://ip/root/study.git

五. 增加文件:

# 添加指定文件到暂存区 $ git add index.jsp index2.jsp…

# 添加指定目录到暂存区,包括子目录 $ git add WEB-INF

# 添加当前目录的所有文件到暂存区 $ git add .

六. 删除文件:

# 删除工作区文件,并且将这次删除放入暂存区 $ git rm index.jsp...

# 停止追踪指定文件,但该文件会保留在工作区,忽略此文件不提交 $ git rm –cached index.jsp

# 改名文件把index.jsp修改成index2.jsp,并且将这个改名放入暂存区 $ git mv index.jsp index2.jsp

七. 还原代码:

# 恢复暂存区的指定文件到工作区,工作区的文件会还原 $ git checkout index.jsp $ git checkout .

# 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变 $ git reset index.jsp $ git reset .

八. 新建分支,切换分支: # 列出所有本地分支和远程分支 $ git branch -a

# 新建一个分支,但依然停留在当前分支 $ git branch test

# 新建一个分支,并切换到该分支 $ git checkout -b dev

# 切换到一个分支 $ git checkout test

九. 提交分支,删除分支,分支合并 #提交本地分支到远程仓库 $ git push origin dev

# 删除远程分支

$ git push origin --delete test # 合并指定分支到当前分支 $ git merge test

十. 打基线tag: # 列出所有tag $ git tag

# 新建一个tag在当前commit $ git tag “v1.0a” # 提交指定tag

$ git push origin dev ”v1.0a”

# 删除远程tag

$ git push origin :refs/tags/v1.0a

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4