git手册

问题场景​

不同git remote之间代码同步

git checkout remote1 branch

git checkout remote2 branch

git merge remote1 branch

git push

已经在git索引记录,现在不想要在git管理

  1. 提交git删除
  2. 提交.gitignore修改
  3. 本地新增该文件

本地仓库重置为与远程分支一致

git reset --hard origin/分支名

合并两个分支代码,但是不提交

git merge --no-commit

本地创建新分支

git checkout -b [origin/branch]

本地创建的新分支推送到远程库

git push -u origin

本地创建git私钥&公钥

ssh-keygen -t rsa -C "邮箱名"

linux/windows设置git私钥免登

打开git bash,运行ssh-keygen -t rsa -C "邮箱名" 后,将生成的id_rsa.pub内容复制到git服务端ssh keys列表中即可。私钥在不同的pc上都是通用的,如果没有执行ssh-keygen,又想要已有私钥生效,则执行ssh-add 私钥文件地址。

git 非对称密钥本地地址

~/.ssh

清空暂存区的内容

git reset .

清空工作区的内容

git clean -d -f

git checkout .

git原理

git分支合并原理

递归策略(recursive)

每一个分支,都是一列commit列表。两个分支AB合并时,共同的commit内容将被抽象为分支C。A B剩余内容相互合并,之后再与分支C合并

撤销工作区修改的内容 git restore 文件名 或 git checkout 文件名

撤销暂存区的修改,git restore --staged 文件名 或 git reset HEAD

git 拉取并合并某库某分支 git pull 远程库名 远程库分支名

git 合并冲突,编辑文件后去除冲突标记,作为更改提交即可

git 提交到本地库,git commit -m "提交备注"

查看远程库 git remote

查看本地所有分支 git branch

查看本地和远程的所有分支 git branch -a

HEAD的意思:本地库当前工作的分支的一个指针

添加远程库 git remote add "远程库名字" giturl

设置tortoise git 私钥:打开tortoise文件夹中puttygen程序,点击Generate生成公钥,复制到git服务端,再点击Save private key生产.ppk文件,运行tortoise文件夹中的Pageant程序,点击add key添加刚刚的文件。

用release分支的内容覆盖master分支

git checkout master

git reset --hard release

git push origin master --force

复制当前分支创建分支: git branch mybranch

切换分支: git checkout mybranch

创建并切换分支: git checkout -b mybranch

本地新分支推送到远程:git push origin yourbranchname

取远程分支并分化一个新分支:

git fetch origin

git checkout -b mybranch origin/mybranch

合并两个分支: git checkout branch1;git merge branch2;

git 设置本地分支pull和push的默认分支:git branch --set-upstream-to=origin/master master

删除本地分支git branch -D yourbranch

临时保存暂存区的内容git stash;取出stash的内容放到暂存区git stash pop

git reset 和git revert 都可以撤销版本库的内容,区别是,reset直接将HEAD指针向前移动,使得部分commit直接被删除丢弃;revert是找到对应commit的内容,rollback该commit的更新,将rollback产生的更新一次新的commit提交

将本地分支重置为远程分支 git reset --hard origin/分支名

删除本地origin和远程不一致的分支git remote update origin --prune

单独获取一次commit内容(任意远程库的commit),应用于当前分支:

git cherry-pick

将远程库最新内容拉取到本地的远程库对应库。git fetch 远程库名字如origin

-恢复最近一次的comit

git reset commitID

git push 【origin master】 --force

修改远程库地址:git remote set-url 远程库名 新url

检出所有的远程库分支

git branch -r --list "origin/*" | grep -v HEAD | grep -v master | xargs -I @ git checkout -t @

查看本地分支与远程分支对应关系:git branch -vv

相关推荐
LinuxGeek102433 分钟前
Kylin-Server-V11、openEuler-22.03和openEuler-24.03的MySQL 9.7.0版本正式发布
大数据·mysql·kylin
容智信息1 小时前
国家级算力底座+企业级智能体:容智Agent OS 获选入驻移动云能中心,联手赋能千行百业
大数据·人工智能·自然语言处理·智慧城市
Chuer_1 小时前
讲透财务Agent核心概念,深度拆解财务Agent应用趋势
大数据·数据库·安全·数据分析·甘特图
gushinghsjj1 小时前
什么是主数据管理平台?怎么构建主数据管理平台?
大数据·数据库
焦糖玛奇朵婷1 小时前
解锁扭蛋机小程序的五大优势
java·大数据·服务器·前端·小程序
OtIo TALL2 小时前
Java进阶(ElasticSearch的安装与使用)
java·elasticsearch·jenkins
阿瑞说项目管理2 小时前
AI Agent 与普通 AI 助手的区别是什么?
大数据·人工智能·agent·智能体·企业级ai
黎阳之光2 小时前
黎阳之光:以视频孪生+全域感知,助力低空经济破局突围
大数据·人工智能·算法·安全·数字孪生
汽车仪器仪表相关领域2 小时前
Kvaser Leaf Light HS v2 M12:5 针 M12 NMEA 2000 接口,海事与工业 CAN 总线测试的防水耐用之选
大数据·网络·人工智能·功能测试·安全性测试
ElfBoard3 小时前
飞凌精灵(ElfBoard)技术贴|如何在RK3506开发板上实现UART功能复用
大数据·linux·人工智能·驱动开发·单片机·嵌入式硬件·物联网