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

相关推荐
时空无限3 小时前
git 文件冲突之后如何操作
git
天天进步20153 小时前
源码级优化:Graphiti 的并发处理与分布式记忆存储架构
人工智能·分布式·架构
alan07213 小时前
【小团队私有化git搭建】
大数据·elasticsearch·搜索引擎
Jul1en_3 小时前
【Git】利用 LFS 突破 GitHub 大文件上传限制
git·github
java1234_小锋4 小时前
Java高频面试题:ElasticSearch如何做性能优化?
java·开发语言·elasticsearch·面试
云巅的cat5 小时前
Git 使用指南
git·github
BPM_宏天低代码5 小时前
宏天CRM系统的消息中心:基于RabbitMQ的实践
分布式·rabbitmq
yunson_Liu5 小时前
prometheus添加es监控模块
elasticsearch·prometheus
追雨潮5 小时前
从内存到 ES:.NET 企业级向量检索架构演进之路
elasticsearch·架构·.net