Git的学习入门到~~~ 哎哟!不知道因人而异

什么是 Git 、 GitHub

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

  • Git 是一个分布式版本控制系统,简单的说其就是一个软件,用于记录一个或若干文件内容 变化,以便将来在阅特定版木修订情况的软件
  • Github 是一个为用户提供Git服务的网站,简单说就是一个可以 放代码的地方(不过可以放的当然不仅是代码)。Github 除了提供管理Git的Web界面外,还提供了订阅、关注、讨论组、在线编辑器等卡富的功能
  • Git本地操作的三个区域:
    Git的组成
    Git的工作流程

本地仓库操作

什么是仓库

仓库又名版本库,英文名repository,我们可以简单理解成是一个目录,用于存放代码的,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除等操作Git都能跟踪到

  • 在安装好后首次使用需要先进行全局配置
    打开“Git Bash Here”以打开Git命令行窗口
$ git config --global user.name "用户名" // 以GitHub为例所以 用户名 就是GitHub上的用户名
$ git config --global user.email "邮箱地址" // 同理 

在这里插入图片描述

  • 创建仓库
      当我们需要让Git去管理某个新项目/已存在项目的时候,就需要创建仓库了。注意,创建仓库时使用的目录不一定要求是空目录,选择一个非空目录也是可以的,但是不建议在现有项目上来学习Git,否则造成的一切后果概不负责!

ps:为了避免在学习或使用过程中出现各种奇葩问题,请不要使用包含中文的目录名

  • 步骤
    创建空目录 $ mkdir 文件名
    进入目录 $ cd 文件名
    Git仓库初始化 $ git init

ps:执行之后会在项目目录下创建“.git”的隐藏目录,这个目录是Git所创建的,不能删除,也不能随意更改其中的内容

  • Git常用指令操作
    查看当前状态: git status
    添加到缓存区:git add 文件名
说明:git add 指令,可以添加一个文件,也可以同时添加多个文件
语法1:git add 文件名
语法2:git add 文件名1 文件名2 文件名3 ...
语法3:git add.
  • 提交到版本库git commit-m "注释内容"
    创建和提交

远程代码仓库

基于 Https 协议的远程仓库

http
http
关于鉴权的错误
鉴权错误
将用户名和密码写入http地址中,告诉GitHub并得到验证
在这里插入图片描述
仓库
同步线上仓库(拉取线上仓库):
 指令:git pull

ps:在每天工作的第一件事就是先git pull 拉取线上最新的版本;每天下班前要做的是git push,将本地代码提交到线上仓库

基于 ssh 协议的远程仓库


该方法与上面的 Https 方式相比,只是影响GitHub对于用户的身份鉴权方式,对于git具体操作(如本地提交 、添加注释 、提交远程等操作)没有任何影响

生成公私钥对指令(需要安装 OpenSSHssh-keygen -t rsa -C "注册邮箱"

步骤

  • 生成客户端公私钥文件
  • 将公钥上传至GitHub

创建公私钥文件
公司钥
上传公钥文件
上传
上传
使用操作 同Https
操作

版本回退分为两步骤进行操作:

  • 查看版本号,确定需要回到的版本编号
    指令:git loggit log--pretty=oneline
  • 回退操作
    指令:git reset --hard 提交编号
  • 回到过去后再想查看最新的时候的版本号
    指令:git reflog

git版本回退
小结:

  • 要想回到过去,必须先得到commit id,然后通过git reset -hard进行回退
  • 要想回到未来,需要使用git reflog进行历史操作查看,得到最新的commit id
  • 在写回退指令的时候commit id可以不用写全,git自动识别,但是也不能写太少,至少需要写前4位字符

分支管理

什么是分支? 如下图
分支
  在版本回退的章节里,每次提交后都会有记录,Git 把它们串成时间线,形成类似于时间轴的东西,这个时间抽就是一个分支,我们称之为master分支
  在开发的时候往往是团队协作,多人进行开发,因此光有一个分支是无法满足多人同时开发的需求的,并且在分支上工作并不影响其他分支的正常使用,会更加安全,Git 鼓励开发者使用分支去完成一些开发任务

分支相关指令
查看分支:git branch
创建分支:git branch 分支名
切换分支:git checkout 分支名
删除分支:git branch -d 分支名
合并分支:git merge 被合并的分支名

查看分支
分支
ps:当前分支前面有个标记 “ * ”

创建分支
创建分支
切换分支
切换分支
合并分支
合并分支
合并分支
删除分支
删除分支
ps:在删除分支的时候,一定要先退出要删除的分支,然后才能删除

冲突的产生与解决

冲突的产生:本地仓库文件未与远程仓库修改之后的文件同步,就修改本地文件执行上传操作,产生冲突
解决:从新同步远程仓库文件,删除被修改文件中不需要的部分,再次上传远程仓库
ps:避免此冲突的有效方法是,次日工作一定同步前天远程仓库和本地仓库中的文件

git使用技能

git GUI工具

  • GitHub for Desktop
    在这里插入图片描述
      Github 出品的软件,功能完善,使用方便。对于经常使用 GitHub的开发人员来说是非常便捷的工具。界面干净,用起来非常顺手,顶部的分支时间线非常绚丽

  • Source tree
    在这里插入图片描述
      老牌的 Git GUI管理工具,也号称最好用的Git GUI工具。功能丰富,基本操作和高级操作都非常流畅,适合初学者上手

忽略文件

  场景:在项目目录下有很多万年不变的文件目录,例如 css、is、images 等,或者还有一些目录即便有改动,我们也不想让其提交到远程仓库的文档,此时我们可以使用“忽略文件”机制来实现需求

  忽略文件需要新建一个名为 .gitignore 的文件,该文件用于声明忽略文件或不忽略文件的规则,规则对当前目录及其子目录生效

ps:该文件因为没有文件名,没办法直接在 windows 目录下直接创建,可以通过命令行 Git Bash 来 touch 创建

常用规则:
1)/mtk/     过滤整个文件夹
2)*.zip     过滤所有.zip文件
3)/mtk/do.c   过滤某个具体文件
4)!index.html  不过滤具体某个文件
在文件中以 # 开头的都是注释

忽略文件
忽略文件
ps:学到这里平时的开发工作已经足够了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章