Git

Git

1.版本控制

  • 版本控制(Revision control):是一种在开发的过程中,用于管理我们对文件,目录或工程等内容的修改历史,方便查看更改历史记录,备份以便回复以前的版本的软件工程技术
    简单来说是用于管理多人协同开发项目的技术,Git就是一种版本控制器
    • 本地版本控制:

      纪录文件每次的更新,可以对每个版本做一个快照,或是纪录补丁文件,适合个人用。
    • 集中版本控制:

      所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改,有个问题:所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,不连网,用户就看不到历史版本,也无法切换版本验证问题,或是在不同分支工作,同时,所有的数据都放在一个单一的服务器上,当这个服务器损坏了,那么就会丢失所有的数据,要定时备份,代表产品:SVN,CVS,VSS
    • 分布式版本控制(Git):

      每个人都拥有全部的代码,安全隐患。所有的版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在联网时push到响应的服务器或其他用户那里。由于每个用户都保存了所有的版本的数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但是这样增加了本地存储空间的占用。不会因为服务器损坏或者网络问题,造成不能工作的情况。
    • Git Bash:Linux命令
    • Git CMD:类似Windows CMD
    • Git GUI:Git图形页面

2.Git 配置(都在本地)

  • git config -l:查看所有的配置文件
  • git config --system --list :查看系统config
  • git config --global --list:查看当前用户(global)配置
  • git config --global user.name “linluo”//用户名(必须要配置)
  • git config --global user.email “xxx@qq.com” //邮箱(必须要配置)
  • 补充:环境变量不配吗?环境变量只是为了全局使用而已,git默认给你配了。

3.Git 基本理论

  • Git 本地有四个工作区域:
  • 工作目录(Working Directory):工作区,平时存放项目代码的地方
  • 暂存区(Stage/Index) :用于临时存放改动,事实上只是一个文件,保存即将提交到文件列表信息
  • 资源库(Repository 或Git Directory):安全存放数据的位置,有提交到所有版本的数据。
  • 远程的Git仓库(Remote Directory):托管代码的服务器
    上传:工作区 git add files 暂存区 git commit 资源区 git push 远程Git仓库
    下载:远程Git仓库 git pull 资源区 git reset 暂存区 git checkout 工作区
  • Git四种状态
    • Untracked:未跟踪,没有加入到git库 不参与版本控制,可以通过 git add 把状态变成staged
    • Unmodify: 文件入库,没修改过,用git rm 移出,变成Untracked状态
    • Modifled :修改过的状态,仅仅只是修改,没有其他的操作,一种是git add 进入staged(暂存),一种是git checkout 丢弃修改,返回unmodify状态,
    • Staged:暂存状态,git commit将修改同步到库

4.Git实操

  • 1 git init 初始化
  • 2 git clone [url] //从远程服务器上的仓库完全镜像一份到本地
  • 3 git add . 把所有文件都添加到暂存区
  • 4 git commit -m “new file hello.txt” 提交暂存区中的内容到本地仓库 -m 提交的信息,本地仓库就是执行git init 的位置
  • 5 git push 提交到远程代码库

5.忽略文件

  • 忽略文件:有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等
    在主目录下建立".gitignore"文件,此文件有如下规则:

  • 忽略文件中的空行或以井号(#)开始的行将会被忽略。

  • 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,…})代表可选的字符串等。

  • 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。

  • 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。

  • 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。

  • #为注释

    • *.txt #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
    • !lib.txt #但lib.txt除外
    • /temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp
    • build/ #忽略build/目录下的所有文件
    • doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

SSH

  • 在本地的Git Bash中输入
    ssh-keygen -t rsa 然后回车,将得到的id_ras.pub 中的字符串添加到码云账户的SSH连接中
    本文参考b站-遇见狂神说-视频
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值