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发生变更的文件列表

相关推荐
Snooker_1464 小时前
TRAE、VSCode上进行git管理
ide·git·vscode
qq_452396235 小时前
第十三篇:《分布式压测:JMeter Master-Slave集群》
分布式·jmeter
小英雄大肚腩丶5 小时前
RabbitMQ消息队列
java·数据结构·spring boot·分布式·rabbitmq·java-rabbitmq
MXsoft6186 小时前
**一套平台管全域****IT****:分布式一体化监控的实战演进**
分布式
zincsweet6 小时前
Git开发工具教程
git
yuyuyui6 小时前
Git实战覆盖98%日常开发场景
git
古怪今人7 小时前
etcd分布式键值存储系统 Windows下搭建etcd集群
数据库·分布式·etcd
LT10157974447 小时前
2026年微服务性能测试平台选型指南:分布式架构适配与服务联动测试
分布式·微服务·架构
颯沓如流星8 小时前
ZKube:优雅易用的 ZooKeeper 可视化管理工具
分布式·zookeeper·云原生
码农的神经元8 小时前
考虑通信时延的直流微电网分布式电-氢混合储能协同控制仿真复现与改进
分布式·wpf