git 和 SVN 的区别以及git的常用命令

本文详细介绍了Git和SVN在版本控制、分布式与集中式管理、优缺点以及常见操作如提交、分支、冲突解决等方面的对比,并提供了GitBash使用指南和gitignore的配置方法。

git 和 SVN 的区别

SVN优缺点

  1. 优点:

    1. 集中是管理系统

    2. 管理方便,逻辑明确

    3. 易于管理,集中式服务器更能保证安全性

    4. 代码一致性非常高

    5. 适合开发人数不多的项目开发

  2. 缺点:

    1. 服务器压力太大,数据库容量暴增

    2. 如果不能连接到服务器上,基本上不可以工作,如果服务器不能连接上,就不能提交,还原,对比等等

    3. 不适合开源开发

git优缺点

  1. 优点:

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

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

    3. 速度快,灵活

    4. 任意两个开发者之间可以很容易的解决冲突

    5. 离线工作

  2. 缺点:

    1. 学习周期相对而言比较长

    2. 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息

git Bash 使用(命令行使用)

注册github账号或gitee账号

  1. 从github或gitee上下载项目

  2. 切换到存放git版本库的地方

git clone url git创建地址或gitee仓库地址

设置全局用户名和邮箱

提交代码的时候就会将用户名 和邮箱存入版本库中,其他开发人员就可以看到是谁提交的代码

git config --global user.name 用户名

git config --global user.email 邮箱

查看全局用户名和邮箱

git config --global user.name

git config --global user.email

查看所有配置信息

git config --list

git的三个区

  1. workspace 工作区(当前编辑的代码区):新添 加的,和修改的未 add 操作的。

  2. stage 暂存区(作为过渡层、避免误操作、保护工作区和版本区、分支处理):add 操作过后,会进入暂存区

  3. repository 版本库(版本控制,本地仓库):commit 操作后,会进入本地仓库

远程仓库

  1. remote(远程仓库):push 操作后,会提交到远程仓库

git 常用命令

  1. git status 显示有变更的文件

  2. 将工作区的内容添加到暂存区

    git add 文件 文件 ……

    git add .

    git add -A

    git add *

    git add 文件夹

  3. 将暂存区的内容添加到版本库

    git commit -m '注释内容'

    git commit 文件 文件 -m '注释内容'

  4. 将工作区的内容添加到版本库

    git commit -a -m '注释'

  5. 查看日志:如果版本太多,一次显示不全,想要退出此状态,请按 q

    git log

对比功能

  1. 工作区与暂存区的差异对比

    git diff

  2. 暂存区也版本库的差异对比

    git diff --cached

    git diff --staged

  3. 工作区与版本库的差异对比

    git diff master

撤销功能

  1. 从暂存区撤销回工作区,发现提交错了,退回一步

    git reset HEAD 文件名

  2. 撤销上一次 add 提交的所有文件

    git reset HEAD

  3. 从工作区撤销回上一次提交的版本区

    git checkout -- 文件名

  4. 撤销上一次的提交命令,重新提交新的代码

    git commit -a -m '注释' --amend

删除功能

  1. 如果工作区删除了一个文 件,通过此命令可以把暂存区的文件删除

    git rm 文件名

  2. 如果删除暂存区的文件,那么工作区和暂存区的文件都会删除

    git rm -f 文件名

  3. 只删除暂存区的文件,工作区的文件保留

    git rm --cached 文件名

恢复功能

  1. 还原删除的文件

    git checkout (commit id) <指定文件>

  2. 还原版本

    git reset --hard (commit id)

    git reset --hard HEAD^ (返回上一个版本)

    git reset --hard HEAD~<num> (返回上几个版本)

  3. 显示操作记录,可以回到当前版本

    git reflog

同步到远程仓库

  1. 查看远程仓库的名字

    git remote

  2. 推送到远程仓库

    git push origin master

  3. 强制 push 到远程仓库

    git push -u origin master -f

多人协作解决冲突

  1. 从远程获取但不与当前代码合并

    git fetch origin

    git diff master origin/master (查看两个冲突文件的异同)

    git merge origin/master (合并)

  2. 从远程获取并与当前代码合并

    git pull origin master

git分支结构

  1. 查看所有本地分支

    git branch

  2. 查看所有远程分支

    git branch -r

  3. 查看所有本地分支和远程分支

    git branch -a

  4. 创建一个新分支

    git branch 分支名

  5. 切换分支

    git checkout 分支名

  6. 合并分支

    git merge 分支名

  7. 删除分支

    git branch -d 分支名

  8. 创建并切换到新分支

    git checkout -b 分支名

gitignore使用

有些时候,你必须把某些文件放到 git 工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件等等,每次 git status 都会显示untracked files … ,有强迫症的童鞋心里肯定不爽。

这个问题解决起来也很简单,在 git 工作区的根目录下创建一个特殊的(.gitignore)文件,然后把 要忽略的文件名填进去,git 就会自动忽略这些文件。

  1. 用法规则和语义:

    # 此为注释 – 将被 Git 忽略

    *.a # 忽略所有 .a 结尾的文件

    !lib.a # 但 lib.a 除外

    /TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括subdir/TODO

    build/ # 忽略 build/ 目录下的所有文件

    doc/*.txt # 会 忽 略 doc/notes.txt

    但 不 包 括 doc/server/arch.txt

git 提交gulp构建的项目

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值