Git基础:Git从入门到熟悉

Git和SVN的区别

        SVN:集中式版本控制工具。SVN只能有一个指定的中央版本库,版本控制文件是在中央服务器的,所有的代码需要上传到这个中央仓库,其他人才能获取最新代码。SVN存放的是每个版本的差异,获取时,需要对比对应文件的差异(效率差)。
所以:
        优点:相对简单,对新手友好。
        缺点:(1)当中央版本库出现问题时,所有的成员库也都无法更新版本。(2).svn文件是svn的版本控制文件,每个文件夹都会有。删除费时。(3)对带宽有一定要求。
        使用场景:(1)对文件进行版本控制,(2)针对人数较少的公司。

        Git: 分布式版本控制工具。没有中央服务器,每个人的电脑就是一个完整得版本库(都有版本文件),无论是个人PC还是服务器坏了,都可以从其他的电脑上获取对应的版本。 git比svn 多一个本地仓库的概念。git保存的是每个版本所有的文件,直接拉取,不需要对比差异。
所以:
        优点:断网的情况下,也可以进行版本控制,因为每个客户端保存的都是完整的项目。
        缺点:Git一开始的学习成本相对贵一点,命令比较多
        使用场景:对代码进行版本控制。

Git工作机制和代码托管中心

Git工作机制

在这里插入图片描述

在这里插入图片描述

        git使用40个16禁止字符的SHA-1得Hash值来作为唯一标识,来标记对象。

Git安装

        windows上安装Git还是非常容易得,基本就是去 官网 下载对应的版本后,默认安装即可。因为存在版本更替的客观原因,建议大家区网上找对应版本的安装教程,本文章就不一一介绍了,此处超链接到一篇我认为介绍比较详细的安装教程。

        可以下载TortoiseGit 或者 SourceTree 配合使用。

TortoiseGit 安装

         TortoiseGit 给我们提供了可视化的操作界面,解决我们记住大量git命令的烦恼。并且安装简单,支持多种语言。非常适合初学者使用。可惜目前只支持Windows使用。
        TortoiseGit安装非常简单,基本都是默认安装。其中有一个步骤是选择git的地址,指向安装的Git的bin目录即可。
在这里插入图片描述
        TortoiseGit安装结束后,可以在Setting修改配置。
在这里插入图片描述
在这里插入图片描述

注意:
        TortoiseGit和git 所使用的SSH工具是不一样的,所以如果在配公私钥的时候,需要配两套上传上去。至于配置方法,可以搜索网上的,都可以用。

Git配置

        Git配置分为三个级别:

// 项目级配置(针对当前仓库)
// 记录在项目目录 .git/config  文件里
git config --local user.name zhangsan
git config --local user.email zhangsan@qq.com
// 用户级配置(针对当前用户)(常用)
// 记录在C:\Users\用户名\.gitconfig 文件里
git config --global user.name zhangsan
git config --global user.email zhangsan@qq.com
// 系统级配置(针对全部用户)
// 记录在 %GIT_HOME%\etc\.gitconfig 文件里
git config --system user.name zhangsan
git config --system user.email zhangsan@qq.com
注: 优先级由高到低: local > global > system
项目级可以用于,对多个不同的项目进行设置
Git全局配置

Git初始化需要给Git设置用户签名,包括name和email。一般记录在 C:\Users\xxx.gitconfig 文件下。
在这里插入图片描述
        也可以通过 命令 git config --global --list 查询配置信息。
注意:
        首次安装必须设置,否则无法提交代码。
        用户签名用于每次提交的时候,作为用户的标记。

git 得增删改查(了解)
// 增
git config --global user.name zhangsan
git config --global --add user.name zhangsan  # 多次不是覆盖,而是添加多个

// 删
git config --global --unset user.name
git config --global --unset user.name zhangsan   # 对user.name得value = zhangsan 做修改,针对user.name有多个值的时候

// 改
git config --global user.name wangwu

// 查
git config user.name 
git config --get user.name
git config --list --global
git 给命令起别名(了解)

        不是很推荐使用,因为首先现在命令有提示,而且也有辅助的可视化工具。

// 对checkout 起别名 ck
git config --global alias.ck checkout  
// 查询(双击tab)
git c

Git初始化本地仓库

        初始化仓库:
        在对应的文件夹内,可以初始化我们本地的仓库。

git init 
// 会在当前文件夹,以仓库名为名新建一个文件夹
git init 仓库名

在这里插入图片描述
        查看当前状态

git status

在这里插入图片描述
        提交到暂存区。

git add "xxxxx"     
git add .       		

         git add "xxxxx" 是将单个文件上传到暂存区。
在这里插入图片描述
         git add .是将所有文件上传到暂存区。

        提交到本地仓库

git commit -m '提交说明,一般用来说明修改代码的介绍'

        查看提交的历史记录

git reflog
git log     // 查看更详细的日志

在这里插入图片描述

Git分支

查看所有分支
git branch -a
创建分支
git branch 分支名
注意:此时新分支复制当前所在分支的所有内容。
删除分支
git branch -d 需删除的分支名
注意,当前不在需删除的分支上
强制删除分支
git branch -D 需删除的分支名
注意,当前不在需删除的分支上
切换分支
git checkout 目标分支
合并分支
git merge 源分支
注意:需要当前分支处在目标分支上

连接远程仓库

无本地仓库,拉取远程仓库

1.clone全程仓库

git clone 远程仓库地址
例:git clone https://gitee.com/xxx/xxx.git    需验证账号密码
例:git clone https://gitee.com/xxx/xxx.git    需配置公私钥
有本地仓库,连接远程仓库

1.连接全程仓库

git remote add origin 远程仓库地址
例:git remote add origin https://gitee.com/xxx/xxx.git    需验证账号密码
例:git remote add origin https://gitee.com/xxx/xxx.git    需配置公私钥
注意:确保当前分支已经将代码全部提交本地仓库(执行过git add 和git commit),否则无法连接远程仓库

在这里插入图片描述

  1. 同步远程仓库和本地仓库
git pull 远程仓库时会报错:refusing to merge unrelated histories

原因:因为两个分支是两个不同的版本,具有不同的提交历史,所以导致这个问题。

方法1:允许不相关历史提交,并强制合并
git pull origin master --allow-unrelated-histories
git push -u origin master

方法2:强制提交(本地覆盖线上)
git push --force origin master
git push -f origin master

在这里插入图片描述
3. 推送本地分支到远程

本地新建的分支,也可以推送到远程仓库
git push origin 本地分支名
  1. 将远程分支复制到新建分支,并切换到新建分支
比如我们想新建一个分支,并且复制远程某个分支代码,则可以用下面的命令
git checkout -b 新分支名 origin/远程分支名
注:源分支只能是远程的

.gitignore文件

        忽略某类文件,可以通过通配符。

// 忽略以 .a和.o 结尾的文件
*.[ao]
// 忽略以 .bak 结尾的文件
*.bak
// 不要忽略 application.xml.bak
!application.xml.bak
// 忽略build文件夹
/build
// 忽略build文件夹和名为build的子文件夹
**/build
// 忽略名为 .DS_Store 得文件
.DS_Store

gitee导入其他git库内容

  1. 可以导入github和gitLab库在这里插入图片描述

  2. 通过url导入
    在这里插入图片描述

  3. 更新最新的代码
    通过刷新,来拉取最新代码(重要)
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值