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操作
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值