git常用操作+常见问题汇总

一、常用操作

options设置

css 复制代码
-d  --delete:删除

-D  --delete --force 的快捷键

-f  --force:强制

-m  --move:移动或重命名

-M  --move --force 的快捷键

-r  --remote:远程

-a  --all:所有

本地提交代码到远程

csharp 复制代码
// 添加所有本地代码变更到暂存区
git add .
// 提交本次变更到本地代码库
git commit -m "feat:修改了功能"
// 推送本地更改历史到远程
git push -u origin <远程分支名>  或 git push

本地和线上代码回滚

scss 复制代码
// 回滚线上代码
git log // 查看需要回滚到的节点,复制commit id
git reset --hard 45f5c01d0dd4cb83f25bc1ea7b82b0348600a041 // 本地代码回滚
git push -u -f origin develop // 强制-f将回滚后的代码推送到远程

// 本地回滚到线上代码
git fetch // 将远程主机的最新内容拉到本地
// git pull  // 将远程主机的最新内容拉下来后直接合并
git reset --hard origin/hotfix // 将本地代码回滚到和远程hotfix分支同步

查看分支

arduino 复制代码
git branch // 查看本地所有分支 
git branch -r  // 查看远程所有分支
git branch -a // 查看本地和远程的所有分支

创建分支

arduino 复制代码
// 新建分支
git checkout -b <newbranch> 
// 将本地新分支推送到远程,如果远程不存在newbranch,会在远程新建newbranch分支,
// 并且将本地分支和远程newbranch建立关联。
git push -u origin <newbranch>
// 将本地分支和远程分支建立关联,如果远程分支不存在,会建立关联失败
git branch --set-upstream-to=origin/<remotebranch> <localbranch>

代码合并冲突解决

csharp 复制代码
// 合并分支1的代码
git merge origin/<branch-name-1>
// 合并分支2的代码
git merge origin/<branch-name-2>
// 如果提示【CONFLICT (content): Merge conflict xxx】表示冲突
// 进行本地文件中处理冲突代码,可以借用图形工具git GUI 或 编辑器(如vscode)自带source control 进行辅助处理
git status // 查看当前冲突文件名
git diff // 查看具体冲突内容
git ls-files --unmerged // 查看所有未解决冲突的文件(包含未解决的合并冲突、未解决的拉取冲突)
// 处理完冲突后
git add .
git commit -m "feat:合并冲突"

本地开发分支,同步master分支代码

arduino 复制代码
// 方式一:合并后,会存在各种合并节点
git merge origin/master
// 方式二:合并后,提交记录是成线性,比较干净的,不会出现各种合并节点交叉
git rebase origin/master

重命名本地分支

xml 复制代码
git branch -m <oldbranch> <newbranch> // 重命名本地分支

删除分支

arduino 复制代码
git branch -d develop-backup // 删除本地分支
git push origin -d develop-backup // 删除线上分支

使用远程分支强制覆盖本地代码

scss 复制代码
git fetch --all //只是下载代码到本地,不进行合并操作
git reset --hard origin/master  //把HEAD指向最新下载的版本

合并某个节点到当前分支

c 复制代码
git log // copy要合并的节点commitId
git cherry-pick 6a02ac0d4c0f8eede46854fb27f6a1f7a1b9578b

打标签 Tag

arduino 复制代码
git tag -a 0.10.0.RELEASE -m "release version 0.10.0.RELEASE"
// git tag 是命令
// -a 0.10.0是迭代M10
// -m 后面跟着的是标签的注释

git tag // 查看现有标签
git tag -d 0.10.1 // 删除本地标签
git push origin :refs/tags/0.10.1 // 删除远程服务器标签
git push origin --tags // 推送至远程

增删查改当前项目的远程仓库地址

csharp 复制代码
// 查看当前项目绑定的远程仓库地址
git remote -v
// 给当前项目添加远程仓库地址
git remote add origin git@github.com:<username>/<project-name>.git
// 修改当前项目的远程仓库地址
git remote set-url origin git@github.com:<username>/<project-name>.git
// 删除远程仓库
git remote remove origin

// 重新设置了仓库后,需要重新跟远程分支建立关联
git pull origin master

设置npm镜像源

arduino 复制代码
// 查看镜像源
npm config get registry

// 旧地址: 2024.1.22 此镜像域名HTTPS证书正式到期,请使用新地址
npm config set registry https://registry.npm.taobao.org

// 清空缓存
npm cache clean --force

// 新地址【推荐】
npm config set registry https://registry.npmmirror.com

二、配置ssh

1、查看本地是否已经生成 rsa 秘钥和公钥,若没有,则生成 ssh key

arduino 复制代码
// 配置用户名和邮箱
git config --global user.name "xxx"
git config --global user.email "xxx@xxx.com"

// 查看是否存在 id_rsa 和 id_rsa.pub文件,若存在,说明已经有了SSH key
cd ~/.ssh
ls
// 如果不存在,生成ssh key,执行后一直回车即可
ssh-keygen -t rsa -C "xxx@xx.com"

// 查看ssh key 公钥内容,并复制内容
cat id_rsa.pub

2、进入github账号,点击右上角账号头像,进入 Settings - SSH and GPG 设置,点击 New SSH key,粘贴id_rsa.pub公钥的内容

3、查看配置是否成功

css 复制代码
ssh -T git@github.com

如果出现 successfully authenticated字样,表示设置成功

三、常见问题

1、git push代码报错connect to host github.com port 22: Operation timed out

配置 ~/.ssh/config,修改端口为 443,因为22端口可能被某些路由器或其他程序占用

typescript 复制代码
cd ~/.ssh/config
vim config // 编辑config内容

// 按下按键【i】进入编辑,输入下面内容
Host github.com
User youremail@xxx.com // 替换成你自己的邮箱地址
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
// 编辑结束,按下【esc】键退出编辑,输入【:wq】进行保存退出

// 查看config内容
cat config
// 再次查看是否链接成功了
// 会出现提示信息,输入【yes】即可
ssh -T git@github.com

如果配置好了,发现还是不行,查看github域名解析后的ip是否正确,会不会被指向本地

makefile 复制代码
// 查看github域名解析后的ip
nslookup github.com

## 执行结果
Name:	github.com
Address: 127.0.0.1

如果指向了本地,修改一下本地的DNS域名映射文件

typescript 复制代码
cat ~/etc/hosts
sudo vim /etc/hosts

// 按下按键【i】进入编辑,添加下面的内容
140.82.113.4 github.com
// 按下【esc】退出编辑,输入【:wq】保存并退出

// 查看是否配置上了
cat ~/etc/hosts
// 再次查看是否链接成功了
ssh -T git@github.com

2、git push代码报错 Failed to connect to github.com port 443 after 79 ms: Couldn't connect to server

需要配置 git 代理

arduino 复制代码
// 查看是否配置过代理
git config --list --show-origin
// 或
git config --global --get http.proxy
git config --global --get https.proxy

// 如果配置过,则先取消代理配置
git config --global --unset http.proxy
git config --global --unset https.proxy

// 修改git配置代理端口号,50005是我自己的,你需要自己查看代理端口
git config --global http.proxy http://127.0.0.1:50005
git config --global https.proxy http://127.0.0.1:50005

如何查看自己代理端口? 如果你是用翻墙软件,开了全局代理,去 网络偏好设置 里。找到 高级 点进去切换到 代理 能看到端口号。 如果你用的是蓝灯翻墙软件,在蓝灯设置页可看到

相关推荐
jingshaoqi_ccc11 小时前
GitKraken最后一个免费版本和下载地址
git·github·gitkraken·版本管理工具
乌云暮年11 小时前
Git简单命令
git·gitee·github·batch命令
用户12592654232014 小时前
使用 Docker 搭建 Gitea 并实现 Git HTTP 自动登录
git
一只毛驴16 小时前
谈谈对git stash的理解?
git
长风破浪会有时呀21 小时前
Git 学习笔记
笔记·git·学习
中微子1 天前
Git Rebase 详解:概念、原理与实战示例
git
荔枝吻1 天前
【保姆级喂饭教程】Windows下安装Git Flow
windows·git·git flow
云和数据.ChenGuang1 天前
git中的指令解释
git
小Lu的开源日常2 天前
在 macOS 上设置 SSH 和 Git
git·macos·ssh
eleven_h2 天前
ERROR: Permission to Splode/pomotroid.git deni
git