• Git的使用


    Git的配置

    在完成Git的下载安装后,在任意位置右键选择Git Bash Here,打开命令行窗口
    在这里插入图片描述
    在Git使用,进行一个一次性的配置,方便Git知道是谁修改了项目,进行跟进,设置对应的用户名和邮箱地址。

    	git config --global user.name "your_username"
    	git config --global user.email your_email@domain.com
    	git config --list 查看所有配置
    

    注意git config命令的 --global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
    在这里插入图片描述

    理解Git文件的三种状态与工作模式

    使用Git操作文件时,文件的状态有以下三种:

    状态 描述
    已提交(committed) 已提交表示数据已经安全的保存在本地数据库中。
    已修改(modified) 已修改表示修改了文件,但还没保存到数据库中。
    已暂存(staged) 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

    针对Git文件的三种状态,这里需要了解Git项目的三个工作区域:工作区、暂存区和Git仓库。

    分类 描述
    工作区 简单的理解为在电脑里能看到的目录,比如自己创建的本地项目目录
    暂存区 Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
    Git仓库 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

    基本的Git工作流程描述如下:

    • 在工作区修改某些文件。
    • 对修改后的文件进行快照,然后添加到暂存区。
    • 提交更新,将保存在暂存区域的文件快照永久转储到Git仓库中。

    在这里插入图片描述

    创建版本库并提交文件

    版本库又名仓库,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

    编写一个文本文件并将文件提交到Git仓库

    • 初始化Git本地仓库
      通过执行git init命令在本地初始化一个本地仓库,执行该命令后会在本地初始化一个没有任何文件的空仓库。
      在本地创建一个文件用作Git的本地仓库,Git Bash Here打开命令行窗口
      	在这里插入图片描述
      在这里插入图片描述

    在这里插入图片描述

    • 新建文本文件git01.txt并添加到暂存区
      在.git同级目录下添加git01.txt文件后,使用 git status查看工作目录与暂存区文件状态
      在这里插入图片描述

        git status命令用于显示工作目录和暂存区的状态。使用此命令能看到哪些被暂存到了,哪些没有,哪些文件没有被Git tracked到。
      

    执行 git add命令添加文件到暂存区
    在这里插入图片描述
    在这里插入图片描述

    	git add path通常是通过git add <path>的形式把<path>添加到索引库中,<path>可以是文件也可以是目录。
    	git不仅能判断出<path>中,修改(不包括已删除)的文件,还能判断出新添的文件,并把它们的信息添加到索引库中。
    

    git commit -m '单引号里写提交的注释' 提交文件
    在这里插入图片描述

    git log 查看提交的日志信息
    在这里插入图片描述
    修改文件再次进行提交
    在这里插入图片描述
    修改后再次查看状态

    在这里插入图片描述
    git add . 这里的“.”是表示提交当前路径下的文件,也可以写绝对路径。
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    注意:提交前必须要先添加到暂存区

    在这里插入图片描述
    将本地的文件修改,但未提交。
    git diff HEAD --git01.txt
    在这里插入图片描述
    在这里插入图片描述
    新建git02,将其提交到缓存区
    在这里插入图片描述
    将git02将其从暂存区移除
    git restore --staged git02.txt
    在这里插入图片描述
    git reset HEAD git02.txt
    该命令是撤销对该文件的上一步操作

    版本回退

    当文件修改后被提交的次数很多时,对于版本库中存放的文件就会出现不同的版本,在多人开发的项目环境中,通常会对不同版本文件进行查看甚至回退的情况(比如某些游戏中所提供的状态保存功能,能够在某一时刻保存整个游戏场景状态以方便后续继续在该状态下进行游戏,而不是从头开始),值得庆幸的是Git也提供了同样的功能,能够让开发者在不同版本的项目中进行切换,达到时空穿梭自如的目的。
    我们可以通过git log命令来查看对应的文件已经有几个版本。

    在这里插入图片描述
    如果提交历史记录较多,可以加入数字控制显示的版本记录数 并且使用 --pretty=oneline简化输出。

    在这里插入图片描述
    HEAD -> master指向最后一次提交

    回退到上一个版本的命令:git rest --hard HEAD^
    其中“^”的个数代表回退版本的个数

    在这里插入图片描述
    也可以指定回退多少个版本git rest --hard HEAD~2
    在~后的数字即是回退的版本个数

    在这里插入图片描述
    git reflog查看所有的日志

    在这里插入图片描述
    将其回退到指定的版本git reset --hard bafb77b(版本号唯一标识,可在日志中查看)

    在这里插入图片描述

    文件删除

    在Git中,删除文件同样是一个修改操作,即在Git世界中,Git仅仅关注文件是否被修改(文件添加,更新,删除)
    git ls-files查看git仓库的文件
    在这里插入图片描述
    我们将git02.txt提交
    在这里插入图片描述
    我们将本地的git02.txt删除
    在这里插入图片描述从git仓库中把git02.txt恢复
    git checkout git02.txt
    在这里插入图片描述

    在这里插入图片描述
    如何将文件从git仓库中删除呢?
    因为Git把文件从工作区删除也看做是一种修改,所以只需要在工作区将其删除,然后进行一次提交即可。
    在这里插入图片描述
    我们可以根据提示,使用 git add 或 git rm进行删除操作

    如果使用git rm操作,可以自动将本地工作区的文件也删除,更加方便。

    在这里插入图片描述
    如果发现是误删,也可以使用之前的版本回退进行恢复。

    远程仓库(GitHub)

    Git是一个分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。对于Git,除了前面提到的本地版本库外,Git支持远程仓库的托管服务即使用者可以将本地版本库中的文件托管到远程服务器进行存储,这样就极大的方便开发,无论你走到哪,只要你的机器能够联网,就可以通过远程的仓库地址得到一份相同的项目库文件,并且下载到本地的文本版本记录与远程文件版本保持一致,并且可以很方便的实现多人协同开发操作。

    通过SSH下载GitHub的文件

    在这里插入图片描述
    首先要生成一个SSH的key
    使用本地Git客户端生成SSH公钥与私钥 执行命令:
    ssh-keygen -t rsa -C "GitHub账户邮箱"
    输入后连续回车,之后去提示的目录下找SSH公钥与私钥
    在这里插入图片描述

    在这里插入图片描述打开下面的那个.pub文件,将其中内容拷贝
    点击add a new public key
    在这里插入图片描述
    将内容复制进去
    在这里插入图片描述

    注意这里添加时将光标所在位置的空格删去
    在这里插入图片描述进行添加
    在这里插入图片描述
    添加完成后进行测试
    ssh -T git@github.com

    在这里插入图片描述
    输入yes
    在这里插入图片描述得到认证成功的提示

    使用git clone 加SSH通道地址进行下载
    在这里插入图片描述

    在这里插入图片描述

    远程仓库推送

    首先要在GitHub创建一个仓库,并做相应的配置
    Add a ReadMe File是添加一个以Markdown形式描述该项目的md文档
    在这里插入图片描述

    在这里插入图片描述

    将项目的SSH通道地址复制下来,这一步是绑定远程仓库
    git remote add origin git@github.com:Caitlyn-bot/PersonalPractice.git

    在这里插入图片描述
    git push -u origin master
    在这里插入图片描述将项目从main切换至master
    在这里插入图片描述

    在这里插入图片描述
    推送完成后,在本地修改文件
    在这里插入图片描述

    先提交到本地仓库,然后git push 推送到远程仓库
    在这里插入图片描述

    在这里插入图片描述
    成功推送至远程仓库
    在这里插入图片描述

    Git分支操作

    开发企业项目中在使用Git或者其他类似版本控制软件对项目版本进行管理时,多人合作的项目在开发时通常不会直接在主干master上进行操作,而是重新开辟新的分支,在新的分支上进行开发调试等操作,当项目调试通过时才会将分支项目的代码合并到主干中,这是实战中比较好的一种策略,特别是多人协同开发一个项目的情况下尤其明显。Git对于分支操作提供了一下基本命令:

    命令 描述
    git checkout branch 切换到指定分支
    git checkout -b new_branch 新建分支并切换到新建分支
    git branch -d branch 删除指定分支
    git branch 查看所有分支,并且*号标记当前所在分支
    git merge branch 合并分支
    git branch -m /-M oldbranch newbranch 重命名分支,如果newbranch名字分支已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名

    注:合并分支时,一定要在主干上合并分支,而不要在分支上合并主干

    本地分支操作

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    新建git02.txt
    在这里插入图片描述
    我们此时在dev分支下操作

    在这里插入图片描述
    切回主干,master分支并未受到dev分支的影响
    在这里插入图片描述
    此时master分支对应的工作区并没有git01.txt
    在这里插入图片描述在主分支master上将dev分支合并到主分支上

    在这里插入图片描述
    删除该分支
    在这里插入图片描述

    远程分支操作

    相关操作命令

    命令 描述
    git branch -a 查看本地与远程分支
    git push origin branch_name 推送本地分支到远程
    git push origin :remote_branch 删除远程分支(本地分支还在保留)
    git checkout -b local_branch origin/remote_branch 拉取远程指定分支并在本地创建分支

    查看本地和远程分支,其中红色部分为远程仓库

    在这里插入图片描述
    创建一个本地分支dev

    在这里插入图片描述
    再次修改本地文件
    在这里插入图片描述
    将其推送到远程的dev分支
    在这里插入图片描述

    推送成功
    在这里插入图片描述
    在这里插入图片描述删除dev远程分支
    在这里插入图片描述
    删除成功
    在这里插入图片描述
    在远程仓库新建分支
    在这里插入图片描述

    git fetch 获取远程仓库最新的分支状态

    在这里插入图片描述
    在这里插入图片描述

    远程拉取并在本地创建分支

    在这里插入图片描述

    分支操作冲突出现与解决

    开发中对不同分支下同一文件进行修改后执行合并时就会出现文件修改冲突情况。
    如这是dev分支下的git01.txt

    修改后进行提交
    在这里插入图片描述

    切换至master主干

    在这里插入图片描述

    在这里插入图片描述
    修改完成后进行提交

    在这里插入图片描述
    进行合并,提示我两个版本不一致,无法合并,在命令后多加--allow-unrelated-histories

    在这里插入图片描述
    在这里插入图片描述
    手动进行处理然后再次提交

    在这里插入图片描述
    在这里插入图片描述
    使用git log --graph --pretty=oneline命令查看带图的日志

    在这里插入图片描述
    当出现冲突时在左边的*号会有分叉

    多人协同操作冲突

    当多个用户同时操作同一分支同一文件时产生的冲突。当第二个人进行提交时会被阻止提交,必须先从远程仓库拉取,拉取时自动合并再次出现合并冲突,解决方法同上。

    注:出现冲突的情况一定是同一个分支,同一个文件的同一行,但代码(内容)不同
    多人冲突潜规则:谁发现冲突,谁负责解决。
    通过先拉取在提交来避免冲突的出现。

    标签管理

    标签操作基本命令 git tag

    命令 描述
    git tag tag_name 新建标签默认为HEAD
    git tag -a tag_name -m 'xxx' 添加标签并指定标签描述信息
    git tag 查看所有标签
    git tag -d tag_name 删除一个本地标签
    git push origin tag_name 推送本地标签到远程
    git push origin --tags 推送全部未推送过的本地标签到远程
    git push origin :refs/tags/tag_name 删除一个远程标签

    同大多数VCS一样,Git也可以对某一时间点上的版本打上标签。开发中在某个软件版本(比如v1.0等等)的时候,通常使用版本库软件命令来对某一版本打上一个标签,以方便标识。

    添加标签
    在这里插入图片描述

    给指定版本打标签

    在这里插入图片描述
    推送标签到远程仓库

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    推送所有未推送的标签

    在这里插入图片描述
    在这里插入图片描述

    Idea集成Git

    打开idea的设置页面,搜索Git,进行配置在这里插入图片描述对GitHub也进行配置

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    idea提交项目

    将项目托管给本地的Git仓库
    在这里插入图片描述
    此时全部文件都变成红色

    在这里插入图片描述意为都是未提交至暂存区,右键项目
    在这里插入图片描述
    添加到暂存区后提交至本地仓库
    在这里插入图片描述选择要提交的部分,添加好注释,进行提交
    在这里插入图片描述
    等待成功提交至本地仓库,去GitHub创建远程仓库
    在这里插入图片描述在这里插入图片描述
    复制仓库地址,进行绑定远程仓库
    在这里插入图片描述在这里插入图片描述
    进行push操作
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    git 学习网站
    Vue 部署在 IIS 上
    Element UI 的坑
    Vue 中 Prop 传至的 一个Bug
    Asp.net Core 部署在 IIS上
    今天用UniApp开发, 用到 Vuex 中的 mutations, 设置值的时候好像只能传2个参数, 第一个是固定的state, 第二个是一个值, 不能传第三个了
    anxios 和 uni.request 访问Asp.net 服务器传参出错的坑
    内网计算机设置问题说明
    关于综合布线
    Android学习 -- Activity 以及Activity之间值传递
  • 原文地址:https://www.cnblogs.com/yeyueweiliang/p/14584534.html
Copyright © 2020-2023  润新知