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 [email protected]:<username>/<project-name>.git
// 修改当前项目的远程仓库地址
git remote set-url origin [email protected]:<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 "[email protected]"

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

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

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

3、查看配置是否成功

css 复制代码
ssh -T [email protected]

如果出现 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 [email protected] // 替换成你自己的邮箱地址
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
// 编辑结束,按下【esc】键退出编辑,输入【:wq】进行保存退出

// 查看config内容
cat config
// 再次查看是否链接成功了
// 会出现提示信息,输入【yes】即可
ssh -T [email protected]

如果配置好了,发现还是不行,查看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 [email protected]

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

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

相关推荐
南菠湾2 小时前
如何在 Visual Studio Code 中配置SSH、Git 和 Copilot插件
git·vscode·ssh
asom222 小时前
GitFlow 工作模式(详解)
git
南菠湾5 小时前
How to set up SSH, Git and Copilot Extensions in Visual Studio Code
git·ssh·copilot
Jditinpc15 小时前
Git使用
git
貂蝉空大17 小时前
Git 常用命令大全
git
兔斯基灬木木19 小时前
【技术工具】源码管理 - GIT工具
git
工呈士21 小时前
Git 工作流与版本管理策略
前端·git·面试
C++ 老炮儿的技术栈21 小时前
文本文件与二进制文件的区别
大数据·c语言·开发语言·c++·git·算法·visual studio
Jooolin1 天前
【编程史】Gitee是啥?它和GitHub关系是什么?
git·github·ai编程
貂蝉空大1 天前
Git Switch 与 Git Restore 详解
git