Git&SourceTree学习

2023-11-14

1.创建本地仓库

  1. 点击菜单栏Create
  2. 点击浏览选择文件夹位置
  3. 设置本地仓库名字
  4. 点击创建

在这里插入图片描述


2.创建文件

  1. 在文件夹下创建文件fruit.txt

  2. 观察文件状态里fruit.txt已经在未暂存文件里

  3. 点击右侧+号将文件保存到暂存区(add)

    在这里插入图片描述

    在这里插入图片描述

  4. 在备注框内输入备注消息进行提交(commit)

    在这里插入图片描述

  5. 点开历史记录(history),查看记录

    在这里插入图片描述


3.修改文件(add .,commit)

  1. fruit.txt文件中添加orange``patato两项记录并保存,回到sourcetree

    在这里插入图片描述

    此时,菜单栏上已经小标提示有一条需要提交的文件信息,文件状态里显示当前fruit.txt为未暂存文件,在History中也可以看到图谱中出现一新的节点未提交的更改

    在这里插入图片描述

    在这里插入图片描述

  2. 点击右侧+号放入暂存区,输入备注信息后提交

    在这里插入图片描述

    在这里插入图片描述

  3. 此时

    • 菜单栏的提交信息消失
    • 点击History已经能看到右侧master分支最新节点上已经有了保存的更改记录
    • 下方4号位置显示了当前HEAD指向节点的哈希值、父节点、作者、节点日期、提交者、节点的备注信息和该节点的文件
    • 右侧号位置记录了该节点的文件操作,+号代表添加的信息,-号表示删除的信息

    在这里插入图片描述

  4. 按照以上步骤依次添加cherrygrape,添加完后结果如下

    在这里插入图片描述

    在这里插入图片描述


4.创建分支(branch)

  1. 点击当前HEAD节点,右键点击分支

    在这里插入图片描述

  2. 给新分支命名dev1,点击创建分支

    在这里插入图片描述

    如图产生了分支dev1

    在这里插入图片描述

  3. 在分支上进行修改操作

    • 分支辨别

      在这里插入图片描述

      左侧分支里可以看当前仓库所有的分支,和当前HEAD指向的分支,同样,右侧图谱内白点所标记的分支即为当前所在分支

    • 在分支上按上文介绍的顺序为fruit.txt文件添加lemon,提交后如下

      在这里插入图片描述

      可以看到分支dev1分支延伸出了新的节点,做了一次更新


5.合并分支(merge,rebase)

  1. 切换到主干master上,并进行一次不一样的修改,为fruit.txt文件添加mango

    • 分支切换的两种方式

      -鼠标移动到分支名上右键点击检出(checkout)

      在这里插入图片描述

      -鼠标移动到左侧分支中的分支名上双击鼠标左键,或者移动到右侧图谱树中的分支名上双击鼠标左键
      在这里插入图片描述

      切换成功:

      在这里插入图片描述

    • master主干上为fruit.txt文件添加mango

      在这里插入图片描述

      在这里插入图片描述

  2. 合并分支dev1到主干master

    • 鼠标移动到分支dev1上鼠标右键点击合并

      在这里插入图片描述

    • 点击确定

      在这里插入图片描述

  3. 解决冲突

    由于主分支我们是往fruit.txt文件中添加的mango,而分支dev1中我们是往fruit.txt文件中添加的lemon,因此当合并两个不同的想法时,就会产生冲突。

    在这里插入图片描述

    在这里插入图片描述

    如图可以看到,提示产生了冲突,在文件状态中,有个未暂存文件需要我们处理出统一的版本才能提交,下方信息中显示Conficts冲突的文件为fruit.txt,右侧4号位显示出了冲突的内容对比。未暂存的fruit.txt文件中也有冲突对比:

    在这里插入图片描述

    若想合并就只能定一个确定的版本,使两个思路最终结果相同。

    • 解决方式

      鼠标右键点击未暂存文件fruit.txt,在解决冲突中可以看到许多种解决方式

      在这里插入图片描述

      • 打开外部合并工具:打开自己在soucetree已经关联的外部代码对比软件,对比两种代码的异同,进行合并
      • 使用 我的版本 解决冲突:使用当前主分支的版本为两者合并后的统一版本
      • 使用 他人的版本 解决冲突:使用需要合并的目标分支的版本作为两者合并后的统一版本
      • 手动解决冲突:直接打开未暂存文件fruit.txt文件进行手动修改,人工确定合并版本,并在提交解决文件后点击**标记为已解决**
    • 本文处理

      本文选择人工手动解决冲突,由于mangolemon都喜欢,所以合并的fruit.txt文件中两种水果都添加

      在这里插入图片描述

      在这里插入图片描述

      将确定好的文件加入暂存区,添加备注后即可提交

      在这里插入图片描述

      由下图可以看到,冲突解决,解决后的新节点处分支dev1和主干masterfruit.txt文件相同,均添加了mangolemon

      在这里插入图片描述


6.回滚与重置提交(revert,reset)

  1. 添加新内容:在主干master上的fruit.txt文件中依次添加basketballfootballpingpang

    在这里插入图片描述

    在这里插入图片描述

  2. 回滚**revert**:删除这一步修改,但会保留这一次修改的版本,是在本版本的基础上进行回退操作

    在这里插入图片描述

    下图可以看到,回滚前的节点仍然存在,并在该节点上revert,此时fruit.txt文件中已经没有了pingpang,已经回退到上一步

    在这里插入图片描述

    在这里插入图片描述

  3. 重置提交**reset**:有三种可选择的重置模式

    鼠标右键点击要重置到的节点,选择**重置当前分支到此次提交**

    在这里插入图片描述

    此时会跳出选择合并方式的选项

    在这里插入图片描述

    有三种合并模式:

    • 软合并:使状态退回到上一步提交前的状态

      在这里插入图片描述

    • 混合合并:使状态退回到上一步未暂存的状态

      在这里插入图片描述

    • 强行合并:使状态强制回退到上一节点,并将本次修改的所有记录全部清除

      在这里插入图片描述


7.推送(push)

  1. 点击菜单栏**远端,点击设置添加**远程仓库路径

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  2. 到**gitee或者github上创建一个仓库,然后点击克隆或者Code,复制路径到sourcetree**中,并为云仓库起一个远端名称

    gitee:

    在这里插入图片描述

    github:

    在这里插入图片描述

    在这里插入图片描述

  3. 点击菜单栏**推送**

    在这里插入图片描述

    选择要推送的分支点击**确定**

    在这里插入图片描述

下图可以看到左侧远程仓库已有记录,图谱里本地分支旁边均有远程分支**origin/masterorigin/dev1**标签,同时,刷新云仓库,可以看到云仓库已有文件,远程和本地并驾齐驱。

在这里插入图片描述

在这里插入图片描述


8.拉取(pull)和获取

  • 获取是获取云端的更新,拉取是将云端的更新拉到本地
  1. 在云仓库中的_fruit.txt文件右侧点击**编辑**,向其中添加bike,然后在下方添加修改说明后点击提交

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  2. 此时回到sourcetree可以看到菜单栏拉取旁有一个消息,证明云端仓库中存在一个修改

    在这里插入图片描述

  3. 此时可以先点击获取,来获取一下更新信息,此时可以看到云分支**origin/master**已经显示出了更新信息

    在这里插入图片描述

  4. 点击拉取,此时本地仓库的主干master也获得了更新,和云端同步

    在这里插入图片描述


9.其他功能

1.标签

在这里插入图片描述

选择某一节点,可以点击菜单栏或者鼠标右键选择标签

在这里插入图片描述

可以添加标签或者删除当前标签

2.贮藏

贮藏可以贮藏未提交到仓库的文件

在这里插入图片描述

在这里插入图片描述

添加贮藏说明

在这里插入图片描述

添加完后,可以在左侧菜单栏贮藏内看到该贮藏文件

在这里插入图片描述

使用时,鼠标右键点击想要使用的贮藏,点击应用即可,此时贮藏文件便会回到工作区的未暂存文件内

在这里插入图片描述

在这里插入图片描述

3.丢弃

丢弃不想要且暂未提交的的修改

可以鼠标右键点击在工作区内的文件或者选择工作区内的文件后点击菜单栏内的丢弃

在这里插入图片描述

菜单栏内的丢弃可以选择丢弃所有更改

在这里插入图片描述

4.命令行模式

命令行模式即和**Git Bash**相同,使用命令行进行仓库操作

在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git&SourceTree学习 的相关文章

  • 来自 eclipse 的部分 git 提交 (egit)

    假设我有一个有 2 个更改的文件 如何使用 egit 只提交其中之一 命令行版本可以在以下位置找到this https stackoverflow com questions 1085162 commit only part of a fi
  • 有关多个远程存储库的 Git 状态

    我有一个脚本 如果我忘记在 40 多个存储库中提交或推送一些代码 它会通过电子邮件向我发送提醒 在我的两个项目中 我遵循了这些帖子中的答案 其中我设置了 git push 来推送到多个存储库 从多个远程位置拉 推 https stackov
  • “git add”返回“致命:外部存储库”错误

    我刚刚进入 git 的奇妙世界 我必须提交我对程序所做的一系列更改 位于名为的目录中 var www myapp 我创建了一个新目录 home mylogin gitclone 从这个目录中 我做了一个git clone针对公共回购 我能够
  • Eventmachine start_tcp_server 无接受器 - 端口正在使用或需要 root 权限(运行时错误)

    我已经 3 天无法运行本地服务器了 重新启动我的计算机没有帮助 有几次 在反复尝试大约 40 50 次之后 它随机地起作用了 我不明白为什么 我尝试过一次不同的端口并且有效 但从那以后 没有端口有效 每次我尝试运行我的 Rails 服务器时
  • 从 master 更改为新的默认分支 git

    这是一个场景 我们有一个默认的分支 Master 我们以此为基础 创建分支并向上推等等 我们现在创建了一个Develop分支Master并将其设置为默认开发分支 我想知道的是 我现在如何知道我的 git pull 命令是否通过命令行请求默认
  • 如何标记单个文件?或如何下载特定文件? - 胃肠道

    我想向文件添加标签以轻松下载该文件而不是整个分支 如何下载GIT中的特定文件 我不知道有什么方法可以标记特定文件git 对于第二个问题 如何下载特定文件git 仅当您的意思是 同时下载 时 以下内容才有效in a git存储库 这就是我理解
  • Git 中的“分支提示”是什么?

    我正在学习 Git 并阅读专业 Git 书籍 https git scm com book en v2 书中和 Stack Overflow 上有时会使用术语 分支提示 但我找不到它的含义 分支提示是分支上的最后一次提交或最近一次提交 基本
  • Git 在推送代码时返回错误 403 [重复]

    这个问题在这里已经有答案了 一切都工作正常 直到我创建了一个新的 GitHub 帐户 当我尝试使用新帐户第一次将代码推送到 github 服务器时 出现以下错误 remote Permission to NEW USER NEW REPO
  • Git 中的合并冲突是由什么构成的?

    git 如何确定特定合并存在冲突以及冲突是什么 我的猜测是这样的 如果正在合并的两个提交有一个共同的父提交 并且如果它们都更改了父提交的 X 行 那就是冲突 让我的理解变得复杂的是 更改 X 行 可能意味着用几行新行替换它 但这仍然显示为一
  • 如何使用 sourceTree 进行推送?

    我正在使用 sourceTree 管理 Unity 项目 版本 4 6 3 我只是想返回到上一次提交 右键选择 将当前分支重置到此提交 在使用模式中选择 硬 然后放回上一次提交 之后 我尝试去推 但没有成功 抱歉 当时我忘记了错误 之后 我
  • 如何将普通的 Git 存储库转换为裸存储库?

    如何将 普通 Git 存储库转换为裸存储库 主要区别似乎是 在普通的 Git 存储库中 你有一个 git存储库内的文件夹 包含构成工作副本的所有相关数据和所有其他文件 在裸露的 Git 存储库中 没有工作副本和文件夹 我们称之为repo g
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • git checkout 到分支需要很长时间

    我使用的是 Ubuntu 17 10 并且使用 git 版本 2 14 1 每当我从 master 创建一个分支并尝试签出它 或从它签出到 master 时 都会花费大量时间 大约几分钟 有时接近 10 分钟 确实 我有几 GB 的数据 但
  • gitlab 请求将分支 A 合并到开发中(落后 3 次提交)我应该担心吗?

    在 gitlab 中创建合并请求时 我经常收到一条消息 请求将分支 A 合并到开发中 x 提交落后 gitlab想告诉我什么 我应该担心还是需要修复某些东西 什么 一段时间后合并请求在项目中打开时 由于其他人合并了自己的更改 您尝试合并到的
  • 自动生成/删除詹金斯工作

    我正在寻找一种自动创建一组詹金斯作业的方法 通常在创建新的 git 分支之后 我已经为maven尝试过这个插件 http evgeny goldin com wiki Maven jenkins plugin http evgeny gol
  • 按时间顺序将多个文件夹提交到 git 中

    我有数百个网站备份 每个文件夹一个 我想将它们放入 git 存储库中 每个备份作为一个版本 这些变化主要涉及图像文件和每天 2 个数据库备份 大小约为 25 GB 并且不断增加 有没有办法告诉 git 获取其中一个文件夹并将其提交到存储库中
  • 无法使用 git 推送或获取 [重复]

    这个问题在这里已经有答案了 我可以拉 但无法使用 git 版本 1 9 5 推送或获取 它突然开始给我以下错误 关于如何修复它有什么想法吗 git fetch fatal unable to access https email prote
  • 从自己的 gitlab 服务器安装节点模块

    我想从我们的 gitlab 服务器安装节点模块 这是存储库的链接 http ABCD GITLAB myGroup myNodeModule git http ABCD GITLAB myGroup myNodeModule git 根据n
  • 如何禁用 GitHub 中的拉取请求?

    我试图了解如何禁用 github 中的 拉取请求 问题一 我们正在尝试使用变基工作流程 这意味着如果不是快速推进 那么使用拉取请求可能会有害 一种解决方案 为我想要禁用拉取请求的分支设置分支权限 或者将我添加为任何进入 master 的内容
  • 如何让 Gitlab 运行程序在成功构建时将代码合并到分支中

    嗯 标题几乎是不言自明的 总之 如果构建成功 我希望将一个分支 即开发 合并到另一个分支 即生产 我尝试了 jakub kania 解决方案 但我总是得到id rsa invalid format 我认为 gitlab 秘密变量以某种方式被

随机推荐

  • 深度学习中的验证集和超参数简介

    大多数机器学习算法都有超参数 可以设置来控制算法行为 超参数的值不是通过学习算法本身学习出来的 尽管我们可以设计一个嵌套的学习过程 一个学习算法为另一个学习算法学出最优超参数 在多项式回归示例中 有一个超参数 多项式的次数 作为容量超参数
  • Error response from daemon: manifest for java:8 not found: manifest unknown: manifest unknown

    拉取镜像出现这等问题 未找到java 8的守护程序清单的错误响应 清单未知 清单未知 找不到该版本号 换java9试试
  • 【Python】matplotlib设置图片边缘距离和plt.lengend图例放在图像的外侧

    一 问题提出 我有这样一串代码 import matplotlib pyplot as plt plt figure figsize 10 6 此处省略代码 legend append J plt legend legend plt xla
  • 论文阅读 [TPAMI-2022] BDCN: Bi-Directional Cascade Network for Perceptual Edge Detection

    论文阅读 TPAMI 2022 BDCN Bi Directional Cascade Network for Perceptual Edge Detection 论文搜索 studyai com 搜索论文 BDCN Bi Directio
  • 【数据分析】利用机器学习算法进行预测分析(二):线性回归(Linear Regression)

    时间序列预测中的机器学习方法 二 线性回归 Linear Regression 本文是 时间序列预测中的机器学习方法 系列文章的第二篇 如果您有兴趣 可以先阅读前面的文章 数据分析 利用机器学习算法进行预测分析 一 移动平均 Moving
  • Redis集群搭建

    1 安装redis 略 参考 https blog csdn net qq 28326501 article details 114339440 spm 1001 2014 3001 5501 2 复制多份 redis要没有数据 及修改re
  • 文件拷贝

    package Java project 1 import java io public class RecursionDemo public static void main String args try 创建一个字节输入流管道与原文件
  • 数据结构与算法学习笔记

    数据结构与算法 一 数据结构 一组数据的存储结构 二 算法 操作一组数据的方法 三 二者关系 数据结构为算法服务 算法作用在特定的数据结构之上 四 常用数据结构 数组 链表 堆 栈 队列 二叉树 散列表 跳表 图 Trie树 五 常用算法
  • 计算机网络-学习笔记

    计算机网络 学习笔记 1 1 1 概念 组成 功能和分类 概念 计算机网络 是一个将分散的 具有独立功能的计算机系统 通过通信设备与线路连接起来 由功能完善的软件实现资源共享和信息传递的系统 计算机网络是互连的 自治的计算机集合 功能 数据
  • zookeeper的服务容量和自我保护实现思考

    zookeeper的服务容量和自我保护实现思考 1 服务自我保护能力 通过基于租户 Throtting机制 能够对访问请求限流 确保核心服务自我恢复能力 引入租户管理 为后续限流 性能统计等功能提供一个基础的信息 通过Throtting来达
  • 番茄插件遇到的各种安装问题处理

    前言 小编被番茄插件折磨疯了 但最终的还是终究是找到了屠灭巨龙的方法 遇到安装成功 但是打开vs不显示图标 番茄插件没法正常使用的情况 这种大多是多次安装造成的问题 修复重新打开 我们发现之前装的插件没了 这时候需要去做删除注册事件表 再重
  • C语言中的数组为什么不可赋值给另一个数组?数组的初始化,除了遍历赋值,还可以怎么被赋值?

    C语言中的数组为什么不可赋值给另一个数组 因为数组为指针常量 如 int a int b b a 是错误地 因为 int a 是 int const a int b 是 int const b 一个指针常量不可以被另一个指针常量修改 地址常
  • CMOS图像传感器——相位对焦

    之前介绍了许多自动对焦的方案 自动对焦方法学习 沧海一升的博客 CSDN博客自动对焦的各类方法学习介绍https blog csdn net qq 21842097 article details 121373263 在里面提到了遮蔽像素相
  • 【学习笔记】C++STL和泛型编程-侯捷

    文章目录 C 标准库 体系结构与内核分析 第一讲 1 header 版本和重要资源 2 STL体系结构介绍 2 1 STL六大部件 Components 2 2 STL容器的前闭后开区间 2 3 基于范围的for循环 ranged base
  • linux进程间通信---本地socket套接字(二)---多进程实现一个server对应多个client

    先给自己打个广告 本人的微信公众号正式上线了 搜索 张笑生的地盘 主要关注嵌入式软件开发 股票基金定投 足球等等 希望大家多多关注 有问题可以直接留言给我 一定尽心尽力回答大家的问题 想要获取完整源码的 关注公众号后回复 socket2 即
  • 在MFC中使用SQLite需要注意的一些事情

    2023年4月28日 周五晚上 今晚在MFC中使用SQLite 有感而发 使用SQLite的时候 使用最多的就是执行SQL语句 这时要特别注意收集SQLite API执行SQL语句时返回的报错信息 甚至 我建议在用SQLite写项目时 每个
  • 织梦系统基本参数部分内容不显示

    织梦系统基本参数部分内容不显示 版本 织梦5 7sp1 GBK版本 编码很重要 这教程为GBK编码相关问题 仔细研究你会发现 只有中文不能填写 英文 数字都是可以正常填写的 解决方法 网站根目录找到 dede templets sys in
  • 【Python小脚本】实现王者农药自动刷金币啦~啦啦啦走跟我一起组队~

    前言 作者 程序员梨子 文章简介 本篇文章主要是写了自动刷金币脚本啦 文章源码获取 为了感谢每一个关注我的小可爱 每篇文章的项目源码都是无偿分 享滴 点这里蓝色这行字体自取 需要什么源码记得说标题名字哈 私信我也可 欢迎小伙伴们 点赞 收藏
  • 数字化时代-14:什么是市场?商品和金钱流动的场所

    关键词 市场 商品 价值 金钱 交换 生产创造了产品 产品内含了价值 然而 如果产品不进入流通 再多的价值也只能是被埋藏的金子 大多数产品的价值 都有时效性 如果长时间不兑现价值 终将随着时间的推移失去价值 就像人的知识经验 随着时间的推移
  • Git&SourceTree学习

    Souretree操作 1 创建本地仓库 2 创建文件 3 修改文件 add commit 4 创建分支 branch 5 合并分支 merge rebase 6 回滚与重置提交 revert reset 7 推送 push 8 拉取 pu