Git使用技巧

2023-05-16

Git使用技巧

基本操作

1、版本控制

版本控制:

  1. 进入文件夹,右键点git bash here
  2. 初始化,输入git init
  3. 管理,git add 文件名
  4. 生成版本,git commit -m ‘v1(描述信息)’

回滚到以前版本:

git reset --hard 版本号

再次回滚到后面的版本:

git reflog
git reset --hard 版本号

2、分支管理

分支:

Git branch 查看分支
Git branch name 创建分支
Git checkout name 切换到分支
Git branch -d name 删除分支

合并分支:(可能产生冲突)

先回到master分支:git checkout master

合并:git merge bug (将bug分支合并到master)

工作流:

至少要创建一个dev分支用于开发,最后再合并

3、github托管

1、创建仓库

2、设置远程仓库地址

git remote add origin 仓库地址

3、本地代码推送:

git push origin branchname

4、个人开发

  • 在公司开发:
  1. 切换分支:

    git checkout  branchname
    
  2. 把master分支合并到开发分支:

    git merge master
    
  3. 修改代码

  4. 提交代码:

    git add .
    Git commit -m 'name'
    Git push origin branchname
    
  • 继续开发:
  1. 切换到开发分支:

    git checkout name
    
  2. 拉代码:

    git pull origin branchname
    
  3. 继续开发

  4. 提交代码:

    git add .
    Git commit -m 'name'
    Git push origin branch
    
  • 开发完毕要上线:
  1. 切换到master:

    git checkout master
    
  2. 合并功能:

    git merge dev(开发分支名)
    
  3. 推送:

     git push origin master
    
  4. 把dev也推送到远程:

    Git checkout dev
    Git merge master
    Git push origin dev
    

5、协同开发

  • 多人协同开发:

    (leader)
    mkdir person #创建新目录
    Cd person/ #切换路径
    Mkdir project 
    Cd project/
    Touch app.py #创建文件
    
    Git init
    Git add .
    Git commit -m 'base'
    
    Git remote origin --
    Git push origin master
    
    Git tag -a v1 -m '第一版'  #给本次提交打个标签(给哈希值打个标签)
    Git push origin --tags
    
    Git checkout -b dev #创建dev并切换到dev
    Git push origin dev
    
    (成员A)
    #第一次接触项目,安装git后操作
    Mkdir A
    Cd A/
    Git clone ---
    Git checkout dev
    Git checkout -b p1 #创建p1分支
    
    #开发
    Git touch p1.py
    Git add .
    Git commit -m 'p1'
    Git push origin p1
    

6、补充

6.1 配置文件

  • 只在当前文件夹下生效(项目/.git/config)
git config --local user.name 'xxxxxx'
git config --local user.email 'xxxxxx@qq.com'
  • 全局配置(~/.gitconfig)
git config --global user.name 'xxxxx'
git config --global user.email 'xxxxx@qq.com'
  • 系统配置文件(/etc/.gitconfig)
git config --system user.name 'xxxxx'
git config --system user.email 'xxxxx@qq.com'

#要有root权限

6.2 免密登录

  • 方法一:URL
#在remote时:
git remote add origin https://用户名:密码@github.com/用户名/项目名.git
#也可以直接在项目/.git/config文件中修改成这个样子哦~
  • 方法二:SSH
#1、生成公钥和私钥(默认放在~/.ssh下,id_rsa.pub公钥,id_rsa私钥)(~表示当前目录)
ssh-keygen
#2、拷贝公钥内容,并设置到github,settings,SSH
#3、在本地添加:
git remote add origin ssh地址
  • 方法三:凭证

6.3 git忽略文件

创建.gitignore文件:在里面写入文件名及其后缀,若要忽略某一类型的文件就写:*.后缀
同时忽略.gitignore文件则在里面再添加.gitignore
忽略某一文件夹下所有文件:      files/
忽略文件时排除某一文件:        !文件.后缀、
忽略pya,pyb,pyc后缀的文件:   *.py(a|b|c)

可以直接在github上搜gitignore文件屏蔽某种编程语言中常用的忽略哦

6.4 任务管理

  • issues:文档及任务管理
  • wiki:项目介绍

源操作

  • 查看源
git remote -v
  • 删除源
git remote remove origin
  • 设置源
git remote add origin ...

常用命令

git status  #检测当前文件夹下的文件状态
git add .   #管理当前文件夹所有文件 
git log     #查看版本信息
git log --graph #以图的形式展示版本信息
git log --graph --pretty=formot:"%h %s"   #显示的时候格式化一下
git reset HEAD 文件名 #将暂存区文件放回工作区
git clone   #将所有代码拷贝下来
Ls 文件列表
Git clone  远程仓库地址      #拷贝该工程所有代码到本地
Git pull origin branchname #拉取远程代码到本地(更新本地工程)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git使用技巧 的相关文章

  • “Git 推送非快进更新被拒绝”是什么意思?

    我正在使用 Git 来管理我的两台计算机和我的开发 我尝试将更改提交到 GitHub 但收到此错误 无法将一些参考推送到
  • Git 子模块在 Windows 上更新缓慢

    Git 子模块在 Windows 上似乎非常慢 为了测试性能 我创建了 3 个裸存储库并向它们提交了 3 条独立消息 未存储文件 然后 我将每个裸存储库作为子模块添加到新的 git 存储库中 并执行子模块更新 花费了 5 秒多的时间 当使用
  • Hudson 结帐卡在“git fetch”处

    我正在使用 git 版本 1 6 2 2 1669 g7eaf8 在 Hudson 1 314 上使用 Hudson Git 插件 0 7 3 当我触发构建时 Hudson 执行 git fetch 但它永远不会返回 我把一只卡在那里14天
  • 如何在 Android Studio 中比较两个 Git 分支?

    我不确定是否可以将主分支 或任何其他分支 与当前功能分支进行比较 例如GIT does 我想要两个分支 主分支和功能分支 之间的差异 以便我可以在合并之前比较差异 我发现 Git UI 对用户不太友好 就像在 AS 中一样 我可以遍历代码并
  • git分支和标签如何存储在磁盘中?

    我最近检查了我工作中的一个 git 存储库 其中有 10 000 多个分支和 30000 多个标签 新克隆后 存储库的总大小为 12Gigs 我确信没有理由拥有 10000 个分支机构 所以我相信它们会占用磁盘中相当大的空间 所以 我的问题
  • GIT 中的重复合并。它如何计算差异?

    我一直在做一项研究 试图了解 GIT 合并是如何工作的 我知道有几种合并类型 如递归 章鱼等 我发现解析 递归是最常用的 并且递归合并仅在存在多个共同祖先 基础时才有用 但是 我找不到从分支重复合并到主节点时使用哪种算法 或者如何计算祖先
  • 有没有办法列出Git中未修改的文件?

    我从另一个来源以 tarball 的形式获取了一些更改 我想知道哪些文件没有更改 目标是 Git 克隆 因此可以轻松查看新增内容和更改内容 有人知道如何获取未更改内容的列表 不包括未跟踪的内容 吗 编辑 换句话说 我希望利用 Git 来查找
  • Gerrit 安装后无法克隆所有项目存储库

    我有一个新设置的 Gerrit 实例 目前只有两个存储库 所有项目 binutils 测试 尝试克隆所有项目时 我收到以下错误 git clone ssh user hostname 29418 All Projects Initializ
  • 在 git 子模块中签出分支

    如何从子模块内更改分支 当我跑步时git branch从子模块内 我看到以下输出 gt git branch HEAD detached from 229a7b2 master 我如何将自己置于一个新的分支上 喜欢development 只
  • Windows 版 GitKraken 中的文件名太长

    正如建议的Q22575737 https stackoverflow com a 22575737 6623589 我已经更新了我的注册表并设置了git config system core longpaths true在处理长路径时 问题
  • 有没有办法缓存 https 凭据以推送提交?

    我最近转而将我的存储库同步到 GitHub 上的 https 由于防火墙问题 并且每次都要求输入密码 有没有办法缓存凭据 而不是每次都进行身份验证git push 自 Git 1 7 9 2012 年发布 以来 Git 中有一个巧妙的机制可
  • 如何在 Windows 上向 git 存储库添加符号链接?

    我使用 GitHub 的电子环境编译 OS X 的二进制文件 并希望将输出添加到 git 存储库 我试过 git add error readlink sulu app Contents Frameworks Electron Framew
  • 如何修复树与树之间的 Git 错误断开链接?

    我的事务被中断 当我再次尝试时 我遇到了空或损坏的对象错误 在另一个问题之后 我删除了所有空文件 当我运行时 git fsck full 我收到这个错误 Checking object directories 100 256 256 don
  • Git 无效的修订范围 Symfony2 Composer 外部包

    RuntimeException Failed to execute git log 18efcf67d236d5bbf46ac67820250dffd0474b6e 94e2146f525fa1367e15646fa273e5b34f92
  • Jenkins git 插件 - 有时太慢

    以下内容摘自 Jenkins 日志 00 00 03 135 gt git fetch tags progress email protected cdn cgi l email protection some org some repo
  • refname 不明确且拉取失败

    我运行了以下命令 因为我想将生产分支移回而不必先签出 git branch f production HEAD 1 现在 当我检查生产时 我收到以下警告 warning refname production is ambiguous 然后我
  • 重新打包存储库对于大型二进制文件有用吗?

    我正在尝试将大量历史记录从 Perforce 转换为 Git 并且一个文件夹 现在是 git 分支 包含大量大型二进制文件 我的问题是运行时内存不足git gc aggressive 我的主要问题是重新打包存储库是否可能对大型二进制文件产生
  • 远程测试时如何搭建git开发环境

    这似乎是一个愚蠢的问题 但我觉得我对 GIT 相当了解 但我似乎无法按照我的意愿设置我的开发环境 我要么错过了一些非常简单的东西 要么我做错了 我在我的服务器上初始化了一个裸 git 存储库 将其克隆到我的本地计算机 提交我的文件并推送到原
  • git push heroku master 权限被拒绝

    我正在关注 ruby railstutorial 我运行命令 git push heroku master 它吐出了这个错误 Permission denied publickey fatal Could not read from rem
  • Git:显示分支之间的差异,忽略合并的提交

    我的存储库历史记录看起来像这样 x y z branch a b c d e master 我想获得 branch 完整历史记录的单个差异 即 像 git diff 输出 我不想要像 git log p 产生的一大堆差异 而不包括任何从 m

随机推荐

  • docker运行ubuntu22.04出现异常(转载)

    原文链接 xff1a https xyz uscwifi xyz post PRTc2ZYZx 参考 xff1a docker Why I cannot run 96 apt update 96 inside a fresh ubuntu
  • 为什么执行同一个程序每次输出的变量地址是不一样的

    首先看一下下面的代码 include lt stdio h gt int main int a 61 1 printf 34 p n 34 amp a return 0 然后我就很疑惑 xff0c 为什么每次的地址都是不一样的 为什么会有这
  • 中断的基本概念

    异常和中断 概念 xff1a 程序执行过程中CPU会遇到一些特殊情况 xff0c 是正在执行的程序被 中断 xff0c cpu中止原来正在执行的程序 xff0c 转到处理异常情况或特殊事件的程序去执行 xff0c 结束后再返回到原被中止的程
  • 8086CPU结构与功能

    微处理器的外部结构 微处理器的外部结构如下图所示 8086CPU片有40个管脚 微处理器通过这些引脚与外部的逻辑部件连接 完成信息的交换 CPU的这些引脚称为微处理器级的总线 功能 与存储器之间交换信息 指令及数据 与I O设备之间交换信息
  • 8086微处理器的寄存器组织

    8086CPU内部有14个16位的寄存器 按功能可以分为8个通用寄存器 4个段寄存器和两个控制寄存器 通用寄存器 通用寄存器可以分为两类 数据寄存器 AX BX CX DX 和地址寄存器 变址寄存器 SI DI SP BP 8086CPU有
  • python dict setdefault()方法

    描述 Python 字典 setdefault 函数和 get 方法 类似 如果键不存在于字典中 xff0c 将会添加键并将值设为默认值
  • CPU原生支持的任务切换方式

    CPU 厂商原本计划的一种任务切换方法 xff0c 并不是操作系统实例中任务切换的方法 未采用的原因是此方法效率不高 xff0c 现代操作系统很少用这种方法切换任务 为了支持多任务 xff0c CPU 厂商提供了 LDT TSS 这两种原生
  • linux内核2.6.16版本启动分析(1)

    电脑的启动流程详见这篇博文电脑开机过程 简述一下就是按下电源键后 cs ip置位到0xffff0的位置 而这个位置是固化的 上面都刻录好了BIOS程序 BIOS执行基本的硬件自检以及建立中断向量表 初始化BIOS中断等 接下来会把第一块磁盘
  • linux内核目录分析

    最近准备开始研读linux的内核了 今天在deepin内核版本为4 8 15上编译安装了内核4 19 6 本来是先装2 6 16版本的 但2 6 16版本的内核版本要求gcc的版本为4 6之下 装4 6版本的gcc的时候出了点问题 还没解决
  • AT&T语法

    在linux内核编写中 为了维持与gcc输出汇编程序的兼容性 as汇编器使用AT amp T系统的V的汇编语法 下面简称为AT amp T语法 这种语法与Intel汇编程序使用的语法 简称Intel语法 很不一样 他们之间的主要区别有以下几
  • eBPF入门

    BPF和eBPF是什么 简单来说 BPF提供了一种在和各种内核和应用程序事件发生时运行一段小程序的机制 BPF是一项灵活而高效的技术 由指令集 存储对象和辅助函数等几部分组成 由于它采用了虚拟指令集规范 因此也可将它视作一种虚拟机的实现 这
  • make详解

    Make 1 学习make的必要性 在Linux中 有一个用来维护程序模块关系和生成可执行程序的工具 xff0d make 他可以根据程序模块的修改情况重新编译链接生成中间代码或最终的可执行程序 执行make 命令 xff0c 需要一个名为
  • Linux:网络编程——UDP代码及其封装

    Linux xff1a 网络编程 UDP代码及其封装 UDP代码封装UDP 前面我们了解了 UDP的编程步骤为 xff1a 客户端 xff1a 创建套接字 接收消息 发送消息 接收消息 服务端 xff1a 创建套接字 绑定地址信息 接收消息
  • 卷积神经网络CNN笔记(Tensorflow)

    卷积神经网络学习笔记 一 卷积神经网络相关定义二 基本步骤三 数据增强1 基本原理2 keras实现3 卷积神经网络中的应用 四 常用代码五 实验代码六 使用预训练的卷积神经网络结语 一 卷积神经网络相关定义 卷积层 xff08 Convo
  • 基于GTSRB数据集的交通标志识别实验(Tensorflow)

    基于GTSRB的交通标志识别实验 一 数据数据读取 二 搭建网络三 模型预测四 附录模块导入Code 结语 一 数据 官网下载太慢 xff0c 然后我找到了一个整理好的数据集 链接 GTSRB 德国交通标志识别图像数据 数据集很干净 xff
  • 贝叶斯分类器原理——学习笔记

    贝叶斯分类器原理 简介一 逆概率推理与贝叶斯公式1 确定性推理与概率推理2 贝叶斯公式 二 贝叶斯分类的原理三 概率估计1 先验概率的估计2 类条件概率的估计 四 贝叶斯分类的错误率五 常用贝叶斯分类器1 最小错误率贝叶斯分类器2 最小风险
  • python format

    str format 基本语法是通过 和 来代替以前的 位置 format 函数可以接受不限个参数 xff0c 位置可以不按顺序 gt gt gt span class token string 34 34 span span class
  • 钢材表面缺陷检测分类不同图像增强方式的对比研究

    带钢表面缺陷检测分类不同图像增强方式的对比研究 1 直接使用图像数据进行深度学习2 图像增强图像分析形态学top hat变换图像锐化 3 图像增强后的深度学习总结 基于钢材表面缺陷库进行多种缺陷检测分类实验 xff0c 对比分析了使用卷积神
  • YOLO系列论文精读

    YOLO系列论文精读 YOLOV11 xff09 实现2 xff09 详细解读总结 YOLOV2 90001 xff09 Better xff1a 2 xff09 Faster xff1a 3 xff09 Stronger xff1a 总结
  • Git使用技巧

    Git使用技巧 基本操作 1 版本控制 版本控制 xff1a 进入文件夹 xff0c 右键点git bash here初始化 xff0c 输入git init管理 xff0c git add 文件名生成版本 xff0c git commit