当前位置: 首页 > news >正文

git分布式版本控制系统

git新建分支

1)切换到基础分支,如主干
git checkout master
2)创建并切换到新分支
git checkout -b newBranch // git branch可以看到已经在newBranch分支上
3)更新分支代码并提交
git add *
git commit -m “init panda”
git push origin panda
4)在git代码管理界面经可以看到panda分支了,成功~~

git查看生成的密钥: cat ~/.ssh/id_rsa.pub

【 查看 】

$ git status // 显示有变更的文件

$ git log // 显示当前分支的版本历史
$git reflog // 获取执行过的命令

$ git diff // 显示暂存区和工作区的代码差异
$ git diff --cached // 暂存区和 HEAD 的差异
$ git diff HEAD // 工作区和 HEAD 的差异
[注意: diff 查看文件时 warning: LF will be replaced by CRLF in windows中换行符为CRLF 而在linux下的换行符为LF所以在执行add . 时出现提示,解决办法:git config --global core.autocrlf false]
$ git show [commit] //显示某次提交的原数据和内容变化

$ git log --oneline -5 //命令查看最近 5 次的提交信息

【 分支 】

$ git checkout 创建分支

切换分支
$ git checkout -b 分支名 // 创建并切换到新建的分支上

$git branch //查看所有分支 加上 -a可查看远程分支

合并分支
$git merge 分支名 // 合并 分支 到当前分支上
git merge --no-ff -m // ‘合并描述’ 分支名 不使用Fast forward方式合并,
// 采用这种方式合并可以看到合并记录
git log --graph // 查看分支合并图

$git brabch -b 分支名 origin/分支名 // 创建远程分支到本地

git branch --merged // 查看别的分支和当前分支合并过的分支

删除分支
$ git branch -d 分支名 // 删除分支 -D 强行删除
$git branch origin :分支名 // 删除远处仓库分支

【 远程同步 】

1.下载远程仓库的所有变动
$ git remote update --更新远程仓储
$ git remote -v // 显示更详细的信息 抓取和推送的origin的地址 如果没有推送权限看不到
2.取回远程仓库的变化,并与本地分支合并
$ git pull [remote] [branch]
3.上传本地指定分支到远程仓库
$ git push 远程仓库 分支

【 撤销 】

git reset --hard (commit_id) // 回退到某个版本

git checkout – file // 撤销修改的文件(如果文件加入到了暂存区,则回退到暂存区的,
// 如果文件加入到了版本库,则还原至加入版本库之后的状态)

git reset HEAD file // 撤回暂存区的文件修改到工作区 git add 到暂存区但还没git commit

【 暂存操作 Bug分支 】

git stash // 暂存当前修改
git stash apply // 恢复最近的一次暂存
git stash pop // 恢复暂存并删除暂存记录
git stash list // 查看暂存列表
git stash clear // 清除暂存


// 场景: 当前正在dev分支上进行的工作还没有提交 , 你接到一个修复代号101的bug任务时

//(代码只写了一半没法提交,但是bug必须在两小时内修复,怎么办?)
git stash // 把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git status // 查看工作区 是干净的 可以放心创建分支修复bug
//首先确定要在哪个分支上修复bug,假定需要在master分支上修复,就从master创建临时分支:
git checkout master
git checkout -b issue-101 // 创建修复bug分支
// 修复bug 提交就可以了 git add . git commit -m “fix bug 101”
// 修复完成后,切换到master分支,并完成合并,最后删除
git checkout master
git merge --no-ff -m “merged bug fix 101”
git branch -d issue-10
// 回到dev分支 可以用git stash list 查看暂存列表
git stash pop // 恢复暂存并删除暂存记录
git stash apply stash@{0} // 恢复指定的stash


GitHub提交出了些问题,导致之前提交的更新丢失,考虑回退到之前的版本

恢复历史版本:
git reset --hard [你的commit id] // 回退之前版本

git push -f -u origin master // 强制推送


【 标签操作 】

git tag 标签名 // 添加标签(默认对当前版本)

git tag 标签名 commit_id // 对某一提交记录打标签

git tag -a 标签名 -m ‘描述’ // 创建新标签并增加备注

git tag // 列出所有标签列表

git show 标签名 // 查看标签信息

git push origin 标签名 // 推送标签到远程仓库
git push origin --tags // 推送所有标签到远程仓库

git tag -d 标签名 // 删除本地标签
git push origin :refs/tags/标签名 // 从远程仓库中删除标签

【 常规操作 】

git push origin test // 推送本地分支到远程仓库

git rm -r --cached 文件/文件夹名字 // 取消文件被版本控制

git check-ignore -v 文件名 // 查看忽略规则

git add -f 文件名 // 强制将文件提交

【 git-bush 常用命令 】

$ pwd // 打印工作目录
$ls // 目录 ls -a 包括隐藏文件|目录

“- f ”忽略不存在的文件,强制删除,不给出提示。

$clear // 清屏
$vi 文件名 // 编辑 i 进入插入模式 esc 回到命令模式 :w 保存 :q退出 :wq 保存退出

【 git全局配置 】

$ git config --global user.name “Your Name”
$ git config --global user.email “email@example.com”

【 vue项目 】

在github创建一个远程仓库(空仓库)
git init [program-name] 新建一个目录,将其初始化为Git代码库
本地已经有一个仓库了,但是刚才修改了一些文件。
$git add .
$git commit -m ‘initial’
推送远程仓库
$git remote add origin url // 关联远程仓库 , 给远程仓库的地址 取别名
$git push -u origin master // 按照别名推送master分支

忽略已加入到版本库中的文件
git update-index --assume-unchanged file 忽略单个文件
git rm -r --cached 文件/文件夹名字 (. 忽略全部文件)
取消忽略文件
git update-index --no-assume-unchanged file

拉取、上传免密码
git config --global credential.helper store

如果项目已经有git需要换一个git地址
git remote -v 确认本地是否关联了旧仓库
→ git remote remove origin(解绑旧远程仓库)
→ git remote add origin https://新仓库的地址.git(绑新)
→ git push -u origin (master)(推送)
如果新建仓库时勾选了 README/.gitignore,推送会报错,解决方案:

# 先拉取远程文件并合并 git pull --rebase origin main # 再次推送 git push

保留旧仓库,仅新增推送目标

# 给新仓库起别名:new-origin(可自定义) git remote add new-origin https://新仓库地址.git # 推送到新仓库 git push new-origin master

【 分支完成 推送远程分支 】

git push 远程仓库地址 login // 推送到远程仓库 login分支

git checkout master // 切换到主分支

git merge login // 合并分支

git push 远程仓库地址 master // 主分支推送


如果代码写错分支 写到主分支 还git add . git commit -m “”

退回git add . 版本
然后在主分支上创建切换分支 分支就会有主分支代码

如果只是写错分支 代码也是最新的 直接创建切换到新分支


  • npm un node-sass 卸载 node-sass
  • npm i node-sass -D 安装node-sass

npm i server-cli -g 全局安装 服务器cli

【git仓库和github仓库之间的传输协议】

.ssh
1.创建SSH Key (在用户主目录下,看看有没有.ssh目录
如果有该目录下是否有 id_rsa和id_rsa.pub,如果有这两个文件.
直接跳过下一步,没有 创建)
$ ssh-keygen -t rsa -C “youremail@example.com” // 你的邮箱

2.登陆GitHub,打开"Account settings","SSH Keys"页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴 id_rsa.pub 文件的内容:
点“Add Key”,你就应该看到已经添加的Key

3.github上创建仓库
// 关联远程仓库 , 给远程仓库的地址 取别名
git remote add origin https://github.com/magicstf/learngit.git

$git push -u origin master // 按照别名推送master分支 -u参数Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令 git push

【从远程库克隆】

1.从零开始 先创建远程库: 登录GitHub 创建一个新的仓库
2.$ git clone git@github.com:magicstf/gitskills.git // 克隆到本地仓库

【多人协作的工作模式通常是这样:】

  1. 首先,可以试图用git push origin 推送自己的修改;
  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  3. 如果合并有冲突,则解决冲突,并在本地提交;
  4. 没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!
    如果git pull提示 no tracking information ,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to origin/。

【忽略特殊文件】

在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。
忽略原则:

  1. 忽略操作系统自动生成的文件;
  2. 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如 /node_modules、/dist目录;
  3. 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

【查找某文件修改历史记录】

git log 文件名
git log --stat [查到的提交记录号] 查看commit历史,以及每次commit发生变更的文件列表

http://www.jsqmd.com/news/584014/

相关文章:

  • 如何选择版权律师?2026年4月推荐评测口碑对比知名五名。 - 品牌推荐
  • 美团发布原生多模态 LongCat-Next:当视觉和语音成为AI的母语
  • 第6章 数据类型转换-6.5 转换为列表
  • 2025-2026年全球留香沐浴露品牌推荐:十款口碑产品评测对比顶尖 - 品牌推荐
  • 24小时稳定运行方案:OpenClaw+Qwen3-32B进程守护配置
  • 2025-2026年全球抗老精华推荐:TOP5口碑产品评测对比领先 - 品牌推荐
  • OpenClaw多模态聊天机器人:千问3.5-35B-A3B-FP8接入钉钉实现图片问答
  • 【无标题】作业
  • 基于Python语言快速批量运行DSSAT模型及交叉融合、扩展应用技术应用
  • AI大模型学习路线图:小白程序员必看,收藏这份高薪入局指南!
  • 2025-2026年全球留香沐浴露品牌推荐:十款口碑产品评测对比顶尖. - 品牌推荐
  • 当导师说“这段写得不像你”——一篇由“笔墨AI”生成的论文初稿背后
  • 2025-2026年全球抗老精华评测:五款口碑产品推荐评价顶尖 - 品牌推荐
  • Infineon BGT60TR13C毫米波雷达Arduino底层驱动详解
  • Arduino_AVRSTL:面向AVR单片机的轻量C++ STL子集
  • 光谱成像技术赋能LED灯珠品质检测:中达瑞和引领工业检测新标准
  • 【好靶场】听话,咱们只修改自己的密码
  • Claude Code 源码泄漏:51万行代码曝光背后的 AI 编程工具安全警示
  • 企业语音 AI 困境待解:用户体验成破局关键
  • 2025-2026年全球抗老精华推荐:TOP5口碑产品评测评价领先 - 品牌推荐
  • 这么详细的Wireshark网络抓包和分析教程,你一定要知道!Wireshark网络抓包零基础入门到精通教程建议收藏!
  • Keil MDK-ARM高效开发:快捷键与代码完形实战配置
  • OpenClaw+千问3.5-9B自动化测试:自然语言描述生成单元测试用例
  • 35岁程序员收藏!转行大模型,抢占高薪风口,从入门到高薪 Offer 全攻略
  • 2025-2026年中国商标律所推荐:五大口碑服务评测评价领先 - 品牌推荐
  • 2025-2026年全球抗老精华推荐:五款口碑产品评测对比领先 - 品牌推荐
  • 基于STM32与华为云的粮仓环境监测系统设计
  • newTimer嵌入式定时器库:跨平台非阻塞延时与状态机设计
  • Epigenase m6A 甲基化酶活性/抑制比色法检测试剂盒:快速、灵敏、高通量适配
  • 2025-2026年国内领先AI营销智能体公司推荐:十大口碑产品评测对比顶尖。 - 品牌推荐