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

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

相关推荐
catmes6 小时前
Git开发常用命令总结
git
是姜姜啊!11 小时前
git命令
git
云只上16 小时前
git更改当前项目的远程仓库,保留原始仓库提交记录提交到新仓库
git
__zhangheng16 小时前
Mac 查询IP配置,网络代理
linux·服务器·网络·git
乐闻x17 小时前
VSCode 插件开发实战(十二):如何集成Git操作能力
ide·git·vscode
旺旺大力包20 小时前
【 Git 】git 的安装和使用
前端·笔记·git
Domain-zhuo1 天前
Git和SVN有什么区别?
前端·javascript·vue.js·git·svn·webpack·node.js
沛沛老爹1 天前
CI/CD是什么?
运维·git·ci/cd
向阳花花花花1 天前
git clone 和 conda 换源
git·conda
sin22011 天前
idea集合git使用
git