git操作

本文详细介绍了Git的各种操作,包括配置设置、本地变更管理、分支操作、查看提交历史、标签管理、远程仓库交互以及SSH密钥的生成和使用。内容涵盖了从初始化仓库到分支切换、合并、rebase的全过程,还涉及了标签的创建与推送、远程仓库的添加和删除等高级操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

仓库的创建

在电脑的任意位置创建一个空目录,进入后通过点击右键打开Git bash窗口,然后执行git init后,它就可以作为我们的本地Git仓库
在这里插入图片描述
当然也有UI版本
在这里插入图片描述
当然用IDEA我们也可以直接使用
在这里插入图片描述

一、配置操作

1.1 全局配置

如果不加名字、邮箱,就是读取当前的名字和邮箱

git config --global user.name '名字'
git config --global user.email '邮箱'

在这里插入图片描述

1.2 当前仓库配置

同理在当前仓库可以达到一样的效果

git config --local user.name '名字'
git config --local user.email	'邮箱'

1.3 查看全局配置

git config --global --list

请添加图片描述

1.4 查看当前仓库配置

git config --local --list 

在这里插入图片描述

1.5 删除全局配置

git config --unset --global 要删除的配置项

1.6 删除当前仓库配置

git config --unset --local 要删除的配置项

二、本地操作

2.1 查看变更情况

git status

在这里插入图片描述
也是IDEA的这里
在这里插入图片描述

2.2 添加当前目录及其子目录为提交内容

当然,.就代表当前路径,也可以写其他路径

git add .

在这里插入图片描述

当然提交的时候,你也可以在这里打勾
在这里插入图片描述

2.3 添加工作区下所有新增文件为提交内容

git add -A

2.4 将指定文件添加到git控制

git add 文件1 文件2 文件3

2.5 比较工作区和暂存区的所有差异

git diff

也就是这样
在这里插入图片描述
IDEA中
在这里插入图片描述

2.6 比较暂存区和HEAD的所有差异

HEAD指的就是.git/HEAD文件,它存储着当前working directory所处的某次commit

git diff --cached

2.7 比较某文件工作区和HEAD的差异

git diff HEAD

2.8 创建commit

git commit

2.9 将工作区指定文件恢复成和暂存区一致

git checkout 文件1 文件2 文件3

2.10 将暂存区指定文件恢复为和Head一致

git reset 文件1 文件2 文件3

2.11 将暂存区和工作区所有文件恢复成和HEAD一样

git reset --hard

IDEA中在这里可以找到
在这里插入图片描述

2.12 用 difftool 比较任意两个 commit 的差异

git difftool 提交1 提交2

也就是IDEA下的这里选择比较即可
在这里插入图片描述

2.13 查看哪些文件没被 Git 管控

git ls-files --others

2.14 将未处理完的变更先保存到 stash 中

git stash

也就是下面的 uncommitted changes(stash 加入,unstash移出)
对单个/多个则选中后右键找到类似的内容即可
在这里插入图片描述



暂存区非常好用,在写一个需求时,如果这时有一个漏洞需要立即修复,你可以将当前未完成的部分先放到暂存区

2.15 临时任务处理完后继续之前的工作

pop 不保留 stash
apply 保留 stash

git stash pop
git stash apply

在IDEA中点击unstash里面会有该选择

2.16 查看所有 stash

git stash list

2.17 取回某次 stash 的变更

 git stash pop stash@{数字n}

2.18 修改最后一次 commit

比如,发现有文件传漏了,就可以这么做,本次提交将和上一次提交合并
选中修改

git add.
git commit --amend

在这里插入图片描述

三、分支操作

基本就是IDEA的这里
在这里插入图片描述
在这里插入图片描述

3.1 查看当前工作分支及本地分支

 git branch -v

3.2 查看本地和远端分支

git branch -av

3.3 查看远端分支

git branch -rv

3.4 切换到指定分支

git checkout 指定分支

3.5 基于当前分支创建新分支

git branch 新分支

3.6 基于指定分支创建新分支

git branch 新分支 指定分支

3.6 基于某个 commit 创建分支

 git branch 新分支 某个 commit 的 id

3.7 创建并切换到该分支

git checkout -b 新分支

3.8 安全删除本地某分支

git branch -d 要删除的分支

3.9 强行删除本地某分支

git branch -D 要删除的分支

3.10 删除已合并到 master 分支的所有本地分支

git git branch --merged master | grep -v '^\*\| master' | xargs -n 1 git branch -d

3.11 删除远端 origin 已不存在的所有本地分支

 git remote prune orign

3.12将 A 分支合入到当前分支中且为 merge 创建 commit

git merge A分支

3.13 将 A 分支合入到 B 分支中且为 merge 创建 commit

git merge A分支 B分支

3.14 将当前分支基于 B 分支做 rebase,以便将B分支合入到当前分支

 git rebase B分支

3.15 将 A 分支基于 B 分支做 rebase,以便将 B 分支合入到 A 分支

 git rebase B分支 A分支

3.16 IDEA分支操作理解

Checkout : 切换至该分支。

Checkout As… : 使用这个分支创建新的分支并切换到新分支。

Compare With… : 使用当前分支与所选分支做代码提交比较

Rebase Current onto Selected: 将所选分支提交加入到当前分支

Checkout with Rebase : 将当前分支提交加入到所选分支

Merge into Current: 将所选分支合并当前分支

Rname:修改所选分支名称

Delete :删除所选分支

四、变更历史

4.1 当前分支各个 commit 用一行显示

 git log --oneline

4.2 显示就近的 n 个 commit

git log -n

4.3 用图示显示所有分支的历史

 git log --oneline --graph --all

4.4 查看涉及到某文件变更的所有 commit

git log 文件

4.5 某文件各行最后修改对应的 commit 以及作者

 git blame 文件

五、标签操作

也就是IDEA中的这个位置
在这里插入图片描述

5.1 查看已有标签

 git tag

5.2 新建标签

 git tag v1.0

5.3 新建带备注标签

git tag -a v1.0 -m ‘第一期提测’

5.4 给指定的 commit 打标签

git tag v1.0 commitid

5.5 推送一个本地标签

 git push origin v1.0

5.6 推送全部未推送过的本地标签

 git push origin --tags

5.7 删除一个本地标签

 git tag -d v1.0

5.8 删除一个远端标签

 git push origin :refs/tags/v1.0

六、远端交互

6.1 查看所有远端仓库

 git remote -v

6.2 添加远端仓库

git remote add url

6.3 删除远端仓库

git remote remove remote的名称

6.4 重命名远端仓库

git remote rename 旧名称 新名称

6.5 将远端所有分支和标签的变更都拉到本地

git fetch remote

6.6 把远端分支的变更拉到本地,且 merge 到本地分支

git pull origin 分支名

6.7 将本地分支 push 到远端

git push origin 分支名

6.8 删除远端分支

git push remote --delete 远端分支名
git push remote :远端分支名

七、ssh秘钥

7.1 ssh 秘钥生成与基本使用

ssh-keygen -t rsa -C "邮箱"

在这里插入图片描述依据给出的地址可以找打秘钥位置
在这里插入图片描述
也可以通过如下命令查看

ls -al ~/.ssh

或者通过以下命令展现公钥

cat ~/.ssh/id_rsa.pub

在这里插入图片描述
以gitee为例,将公钥放入如下区域
安全设置->SSH
在这里插入图片描述
放入后即可使用,克隆时使用ssh网址即可。

7.2 config 多 ssh配置

创建一个config即可

在这里插入图片描述

通过如下命令指定保存使用的文件名称,区分不同git ssh

ssh-keygen -t rsa -C "邮箱" -f ~/.ssh/文件名称

使用如下命令,指定使用的公钥

  • host:指定远程主机网址
  • PreferredAuthentications:指定使用方式
  • IdentityFile:指定使用文件
# gitee
Host gitee.com
	PreferredAuthentications publickey
	IdentityFile ~/.ssh/gitee_id_rsa
# github
Host github.com
	PreferredAuthentications publickey
	IdentityFile ~/.ssh/id_rsa

7.2.1 多个ssh可用时指定使用

 Host ssh.dev.azure.com
  IdentityFile ~/.ssh/id_rsa_azure
  IdentitiesOnly yes

IdentitiesOnly yes 设置可确保 SSH 不会使用任何其他可用标识进行身份验证。如果有多个标识可用,可以加上这个。

7.2.2 同地址使用不同ssh

Host devops_fabrikam
  HostName ssh.dev.azure.com
  IdentityFile ~/.ssh/private_key_for_fabrikam
  IdentitiesOnly yes

Host devops_contoso
  HostName ssh.dev.azure.com
  IdentityFile ~/.ssh/private_key_for_contoso
  IdentitiesOnly yes

使用如下地址时:

git@ssh.dev.azure.com:v3/Fabrikam/Project1/fab_repo

就需要替换为

git@devops_fabrikam:v3/Fabrikam/Project1/fab_repo

或者

git@devops_contoso:v3/Fabrikam/Project1/fab_repo

这时候就可以使用我们指定的秘钥了

7.2.3 加密策略请求

根据TFS文档

某些 Linux 发行版(例如 Fedora Linux)的加密策略需要比 Azure DevOps 支持的更强大的 SSH 签名算法(截至 2021 年 1 月)。 有一个开放功能请求可用于添加此支持。

我们可以使用类似 主机地址 + PubkeyAcceptedKeyTypes的方式添加支持。

Host ssh.dev.azure.com vs-ssh.visualstudio.com
  PubkeyAcceptedKeyTypes +ssh-rsa

7.2.4 安全策略降级

根据TFS文档
可以使用如下方式,对于禁用的算法方式进行解禁。

Host ssh.dev.azure.com vs-ssh.visualstudio.com
  HostkeyAlgorithms +ssh-rsa
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值