一、常用操作
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
如何查看自己代理端口? 如果你是用翻墙软件,开了全局代理,去 网络偏好设置
里。找到 高级
点进去切换到 代理
能看到端口号。 如果你用的是蓝灯翻墙软件,在蓝灯设置页可看到