Git和SVN的区别及Git的使用

一、Git是什么?

      Git是目前世界上最先进的分布式版本控制系统。

二、SVN与Git的最主要的区别? 

SVN为集中式版本控制系统,版本库是集中存放在*服务器的

单独搭建SVN服务器,不能离线工作

操作简单,代码保密性较强

Git和SVN的区别及Git的使用

 

 

GIT为分布式版本控制系统根本没有“*服务器”,每个人的电脑上都是一个完整的版本库

适合分布式开发,强调个体

公共服务器压力和数据量都不会太大

速度快灵活

可以离线工作

操作复杂,代码保密性差

 

Git和SVN的区别及Git的使用

 

GitHub,免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的。GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。  

SVN的存储需要依赖一个服务器,而git所有的东西是放在线上的。节约成本,省时省力。

三、如何使用Git

远程仓库url:https://github.com/Bigtreeor/GitTest

1.安装git之后,要进行全局配置

查看全局配置   git config --global --list

命令   git config --global user.name "你的git名称"

命令   git config --global user.email "你的git验证邮箱"

 

git命令行的操作命令:

cd     mkdir    pwd    rm    ls

 

2.创建本地仓库

git init

本地仓库由 git 维护的三棵“树”组成:

第一个是你的 工作目录,它持有实际文件;

第二个是 暂存区(Index),临时保存你的改动;

最后是 HEAD,指向你最近一次提交后的结果。

  1. git init   -> 创建版本库

  2. git add 文件名   -> 添加到暂存区

  3. git commit -m '提交注释'   ->提交到本地仓库

 

 

3.提交到git服务器

  • 打开Git Bush

        git add ‘文件名’

        git add -u  提交所有被修改(modified)和被删除(deleted)文件,不包括新文件(new)

        git add .  提交所有新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件

        git add -A  提交所有变化

        add将修改的文件放到暂存区(暂存区在本机)

  • 提交

        git commit -m '我提交时候的备注(注释)'

        查看commit状态: git status  用于显示工作目录和暂存区的状态

        查看修改内容:git diff 你的文件名

  • 版本回退

        git log          ( 查看日志)

        git reflog        (版本号)

        回退命令:

        git reset --hard HEAD^  退回到上个版本 如果需要退回好多版本就在后面加上 ^ 例: git reset --            hard HEAD^^退回两个版本

    git reset --hard 191e0c7  回退到指定版本

        然后去查看readme.txt是否成功退回

  • 删除

        rm test.txt

        git status 查看提交

        git commit -m '确认删除'

        或 放弃修改 git reset --hard 版本号(通过 git reflog)

4.推送到远程仓库

    1. git remote add origin https://github.com/Bigtreeor/GitTest  设置远程仓库地址

    2. git push -u origin master 将本地的库推送到master分支 (第一次推送要带上-u)-f 强制推送

 

    git remote -v  查看远程仓库地址

  git remote rm origin  删除远程仓库地址

    之后 git push h就可以把本机的代码提交到远程仓库

    git push     (提交master分支 到远程仓库)

    git push origin 分支名     (提交其他分支 到远程仓库)

 

    获取远程仓库的更新数据:

    git fetch:相当于是从远程获取最新到本地,不会自动merge

    git pull:相当于是从远程获取最新版本并merge到本地

    git pull origin 分支名   更新某个远程分支到本地

 

    从服务器克隆数据: git clone https://github.com/Bigtreeor/GitTest

 

5.分支操作

  •     查看分支:git branch 

            当前分支前有 * 号

 

  •     创建分支:git branch <name>

 

  •     切换分支:git checkout <name>

 

  •     创建+切换分支:git checkout -b <name>

 

  •     合并某分支到当前分支:git merge <name>

            合并完以后就push,最好先pull一次  然后 git push

 

  •     删除分支:git branch -d <name>

6.设置忽略文件

    1.创建文件:.gitignore

2.忽略文件列表

# .gitignore 忽略文件列表

.DS_Store

node_modules/

/dist/

npm-debug.log*

yarn-debug.log*

yarn-error.log*

 

# Editor directories and files

.idea

.vscode

*.suo

*.ntvs*

*.njsproj

*.sln