Git常见命令和用法

发布于:2024-07-11 ⋅ 阅读:(18) ⋅ 点赞:(0)

Git 文件状态

Git 文件 2 种状态:

  • 未跟踪:新文件,从未被 Git 管理过
  • 已跟踪:Git 已经知道和管理的文件
    在这里插入图片描述

常用命令

命令 作用 注意
git -v 查看 git 版本
git init 初始化 git 仓库 初始化之后有工作区、暂存区(本地库)、版本库
git add 文件标识 暂存某个文件 文件标识以终端为起始的相对路径
git add . 暂存所有文件
git commit -m’说明注释’ 提交产生版本记录 每次提交,把暂存区内容快照一份
git status 查看文件状态-详细信息
git status -s 查看文件状态-简略信息 第一列是暂存区状态,第二列是工作区状态
git ls-files 查看暂存区文件列表
git restore 文件标识 从暂存区恢复到工作区 如果文件标识为.则恢复所有文件
git rm --cached 文件标识 从暂存区移除文件 不让 git 跟踪文件变化
git log 查看提交记录-详细信息
git loa --oneline 查看提交记录-简略信息 版本号 分支指针 提交时说明注释
git reflog --oneline 查看完整历史-简略消息 包括提交,切换,回退等所有记录
git reset 版本号 切换版本代码到暂存区和工作区 soft 模式保留暂存区和工作区原本内容; hard 模式不保留暂存区和工作区原本内容 ; mixed 模式不保留暂存区,工作区保留(默认)先覆盖到暂存区,再用暂存区对比覆盖工作区
git branch 分支名 创建分支
git branch 查看本地分支
git branch -d 分支名 删除分支 请确保记录已经合并到别的分支下,再删除分支
git checkout 分支名 切换分支
git checkout -b 分支名 创建并立刻切换分支
git merge 分支名 把分支提交历史记录合并到当前所在分支
git remote add 远程仓库别名 远程仓库地址 添加远程仓库地址 别名唯一,地址是.git 结尾的网址
git remote -v 查看远程仓库地址
git remote remove 远程仓库别名 删除远程仓库地址
git pull 远程仓库别名 分支名 拉取 完整写法:qit pull 远程仓库别名 远程分支名:本地分支名等价于:git fetch 和 git merge
git push 远程仓库别名 分支名 推送 完整写法:git push 远程仓库别名 本地分支名:远程分支名-u:建立通道后以后可以简写 git push
git pull --rebase 远程仓库别名 分支名 拉取合并 合并没有关系的记录
git clone 远程仓库地址 克隆 从0得到一个远程的Git仓库到本地使用

Git 远程仓库

需求:创建远程版本库,并把本地 Git 仓库推送上去保存
步骤:
1.注册第三方托管平台网站账号
2.新建仓库得到远程仓库 Git 地址
3.本地 Git 仓库添加远程仓库原点地址

git remote add 远程仓库别名远程仓库地址

例如: git remote add origin https://gitee.com/lidongxu/worktest.git

4.本地 Git 仓库推送版本记录到远程仓库

git push -u 远程仓库别名 本地和远程分支名

例如: git push -u origin master

Git 远程仓库-克隆

克隆:拷贝一个 Git 仓库到本地,进行使用

git clone 远程仓库地址

例如:git clone https://gitee.com/lidongxu/work.git
效果:在运行命令所在文件夹,生成 work项目文件夹(包含版本库,并映射到暂存区和工作区)

注意1:Git 本地仓库已经建立好和远程仓库的链接
注意2:仓库公开随意克隆,推送需要身为仓库团队成员

Git 暂存区使用

暂存区:暂时存储,可以临时恢复代码内容,与版本库解耦

暂存区 ->覆盖 ->工作区,命令:git restore 目标文件(注意: 完全确认覆盖时使用)

Git 回退版本

概念:把版本库某个版本对应的内容快照,恢复到工作区/暂存区
查看提交历史: git log–oneline
回退命令:

git reset --soft 版本号(其他文件未跟踪)
git reset --hard 版本号
git reset--mixed 版本号(与 git reset 等价)

soft 回尽可能保留工作区和暂存区的文件
hard 回退回清理工作区和暂存区文件 (日常用的多的模式)
mixed 默认的模式, 工作区会保留,暂存区会被清理

注意1:只有记录在版本库的提交记录才能恢复
注意2:回退后,继续修改->暂存->提交操作即可(产生新的提交记录过程)

分支创建

1、创建分支:

git branch 分支名

2、切换分支:

 git checkout 分支名

本地仓库中的所有分支

 git branch 

暂存本地

git add .
git commit -m '提交测试git'

查看提交的记录

git log --oneline

分支合并

分支-合并与删除
要求 : 把 login-bug 合并回到 master分支并删除login-bug 分支。
步骤:
1.切回到要合入的分支上:git checkout master
2.合并其他分支过来:git merge login-bug
3.删除合并后的分支指针:git branch -d login-bug

分支-合并冲突
需求1:基于 master 新建 publish分支,完成发布文章业务,然后修改内容页面的 html文件的 title 标签,并提交一次。

需求2:切换到 master,也在修改内容页面的 html文件的 title 标签,并提交一次冲突:把 publish 分支合并到 master 回来,产生合并冲突。

概念:不同分支中,对同一个文件的同一部分修改,Git无法干净的合并,产生合并冲突

在执行git merge publish命令的时候会产生冲突。如下
在这里插入图片描述

解决:
1.打开 VSCode 找到冲突文件并手动解决
2.解决后需要提交一次记录
在这里插入图片描述

  • 采用当前更改:当你选择这个选项时,VSCode
    将会保留你的本地更改,并忽略来自其他分支或提交的更改。这通常用于当你认为你的更改是正确的,而远程的更改可以被覆盖的情况
  • 采用传入的更改:相反地,如果你选择这个选项,VSCode
    将会应用来自其他分支或提交的更改,并覆盖你的本地更改。这通常用于当远程更改更重要,或者你需要更新到最新的状态时
  • 保留双方更改:如果你选择保留双方的更改,VSCode 将会在冲突的代码段中包含两个版本的更改。这通常会导致在源代码文件中留下类似
    <<<<<<< HEAD 和 >>>>>>> branch-name 的标记,需要你手动编辑文件以合并这两个版本
  • 比较变更:这个选项允许你在合并之前查看两个更改之间的差异。你可以通过一个内置的差异查看器来对比当前和传入的更改,这有助于你理解冲突的本质并决定如何解决它们。在比较之后,你可以手动选择要保留的部分,或者使用上述选项之一进行自动处理

忽略文件

概念:.gitignore 文件可以让 git 彻底忽略跟踪指定文件
目的:让 git 仓库更小更快,避免重复无意义的文件管理
例如:
1.系统或软件自动生成的文件
2.编译产生的结果文件
3.运行时生成的日志文件,缓存文件,临时文件等
4.涉密文件,密码,秘钥等文件
在这里插入图片描述