【Git】git常用命令

发布于:2024-06-28 ⋅ 阅读:(13) ⋅ 点赞:(0)

初始化配置

设置用户名和邮箱,来标识身份,方便日后上传GitHub

git config --global user.name "xxx"
git config --global user.email "xxx"
git config --global --list # 存用户名和密码
git config --global --list # 查看配置

新建仓库

方式一:

git init #初始化当前文件夹为仓库

方式二:

git init 文件夹路径 #初始化指定路径为仓库

init后,文件夹中会有 .git隐藏文件夹来维持仓库信息,删除就不是仓库了

工作区域和文件状态

  • 工作区(工作区域):就是本地文件夹,和.git夹所在目录
  • 暂存区:.git/index
  • 本地仓库:.git/object
    在这里插入图片描述
    文件状态:
  • 未跟踪
  • 未修改
  • 已修改
  • 已暂存
    在这里插入图片描述

添加和提交文件

git status # 查看仓库状态
git add # 添加到暂存区
git add *.txt # 添加到暂存区 可以使用通配符
git commit # 提交到本地仓库(只提交暂存区,不提交工作区)
git log # 查看仓库提交历史记录 可以使用--oneline 参数来查看简洁的提交记录

git reset回退

reset 回退版本
在这里插入图片描述

git diff 查看差异

git diff 可以查看工作区、暂存区、本地仓库、不同版本之间的差异

在 Git 中,HEAD 是一个指向当前所在分支的引用,用于指示当前工作目录所在位置。HEAD 在 Git 中有以下几种含义和用法:

  1. HEAD 指向当前所在分支:在 Git 中,HEAD 指向当前所在分支的最新提交,即指向当前工作目录所在的分支的引用,Git 通过 HEAD 知道当前所在的分支是哪一个,以及要在哪个分支上进行操作。
  2. HEAD 指向当前的 commit:当在某个分支上进行 commit 操作时,HEAD 会随着 commit 的历史记录一起移动,始终指向最新的 commit。
  3. HEAD 指向当前的 commit 或 branch,用于表示当前工作目录的状态:当需要在当前分支上进行操作时,HEAD 用于指示当前所在位置和状态。
  4. HEAD 可以指向某个特定 commit:有时候,开发人员可能需要切换到特定的 commit 来查看历史记录、进行修改或创建新分支,这时可以通过 HEAD 指向某个特定的 commit。

总的来说,HEAD 在 Git 中是一个非常关键的指针,用于指示当前工作目录所在位置,可以帮助你了解当前所在的分支、commit 内容以及状态,对于在 Git 中进行版本控制和开发非常重要。

git diff # 工作区 vs 暂存区
git diff HEAD # 工作区+暂存区 vs 本地仓库
git diff --cached / # 暂存区 vs 本地仓库
git diff --staged # 暂存区 vs 本地仓库

比较提交之间的差异:

git diff <commit_hash><commit_hash>
git diff HEAD~ HEAD

HEAD~ 代表上一次提交
HEAD~2 代表上两次提交
同理:
HEAD~3 代表上三次提交
HEAD~n…

比较分支之间的差异:

git diff <branch_name><branch_name>

git rm 删除文件

rm file && git add file # 先从工作区删除文件,再删除暂存区(同步)
git rm file # 同时删除工作区和暂存区的文件
git rm --cached file # 把文件从暂存区删除,但保留工作区
git rm -r * # 递归删除某个目录下的所有子目录和文件

.gitignore忽略文件

作用:在上传时,忽略不需要上传的文件
如:
自动生成的文件
编译的中间文件、结果文件
日志文件、缓存文件、临时文件
敏感文件(密码、口令、密钥)

SSH配置和克隆仓库

使用git命令克隆代码有两种方式,ssh和http。

ssh:在GitHub上配置ssh公钥,安全且方便
http:需要用户名和密码,操作繁琐,每次需要输入

ssh密钥配置需要把本机公钥内容放在GitHub中,具体配置ssh步骤就先不描述了。

把本地仓库和远程仓库建立关联

初始化空仓库

git init 

和远程仓库建立关联,顺便给远程仓库起个别名

#            远程仓库别名(随便起,主要凭借远程仓库地址起作用)
git remote add origin git@github.com:xxxx/yyyy.git

查看远程仓库

git remote -v # 

推送到远程仓库上

#
git push -u origin main # 仓库分支名不同都写

拉取

git pull # 默认拉取origin仓库的main分支
git pull <远程仓库名> <远程分支名>:<本地分支名>

在这里插入图片描述

Gitee和Gitlab的私有化部署

Gitee时国内的代码托管平台,速度比Github快。
Gitlab特点是私有化部署的平台,安全性好,很多公司使用。

这里想说的是,一个本地项目可以和不同平台的项目建立关联。

比如,使用git remote -v查看远程仓库,可以同时显示Gitlab和GitHub和Gitee。因为实现可以使用git remote add和三个平台都建立关联。

vscode使用git

先写到这里,日后更新…