TortoiseGit工具使用

2023-10-31


TortoiseGit clone、commit、push、pull


3.1 克隆项目

 

打开资源管理器(我的电脑/计算机), 进入规划好的某个目录中, 然后在空白处点击鼠标右键, 选择 TortoiseGit --> 克隆... (Clone...).

弹出克隆项目对话框:

在对话框的 URL中输入项目地址,如:

https://github.com/cncounter/LispGentleIntro.git

确定本地目录,然后点击 确定 按钮. 等待完成后,点击关闭按钮即可.

3.2 修改提交项目

项目克隆完成后(可以将克隆 clone 理解为 下载, 检出 checkout 操作). 修改本地项目中的某些文件,如 将 README.md 修改

然后在本地项目的空白处点击鼠标右键Commit,

弹出提交(Commit)对话框:

作为好习惯,填写提交日志,勾选需要提交的文件,然后点击 "确定" 按钮, 即提交到本地仓库.

3.3 将提交到本地的项目推送到在线仓库

推送是提交的下一步操作.

在本地项目的空白处点击鼠标右键, 选择 TortoiseGit --> 推送... 或: Push....

弹出推送(push)对话框:

一般保持默认,点击 “确定” 按钮.

然后弹出推送进度界面, 可能要求你输入用户名:

确定OK,然后要求输入密码:

密码输入正确后,OK,显示推送成功界面:

如果你按照上一小节的设置操作,则输入密码以后会记住密码. 密码会明文保存在 C:\Users\Administrator\.git-credentials 这种文件中, 请小心使用.

3.4 拉取项目(pull ...)

如果本地的项目没有在线仓库的新,则需要执行拉取操作(Pull ...).

在本地项目的空白处点击鼠标右键, 选择 TortoiseGit --> 拉取... 或: Pull....

弹出拉取(pull)对话框:

【如果拉取有BUG,请不要使用 rebase, 下载最新的 TortoiseGit 即可】, 进入 拉取进度界面:


TortoiseGit操作分支


例如:当切换到remotes/orgin/release-2.0远程分支的话,,并不是直接切换到远程分支上去了,

其实是自动先给remotes/orgin/release-2.0远程分支,新建一个release-2.0本地分支,在切换到本地分支上。

然后在该本地分支上写代码。

删除分支:TortoiseGit没有找到删除的地方,这里就可以配合Git命令行来操作了,就不要去纠结删除在哪里。


TortoiseGit stash save保存没有完成的工作


如何你在master分支上进行写代码,进行到一半,需要在master分支上进行其他操作,现在该怎么办呢??


TortoiseGit拉分支


7.1新建一个分支,右键-->tortoiseGit-->Create Branch

  

右键,你会发现当前的分支为你新建的newfunction分支了

7.2接下来,就开心新增加你的功能;我们再proprame.txt中不仅增加了show方法,还修改了metho方法

7.3提交我们的代码,此时我们发现这个新功能不行,存在很多漏洞等等问题。我们想回到之前的代码。怎么办呢?

7.4为了回到之前的项目,我们直接切回master分支。

先来看看现在的文件内容,新加的和修改的都在。

然后我们切换到master分支,右键-->tortoiseGit-->Switch/Checkout

选择master即可,然后确定

再来看看program中的代码是否回到了从前呢?

无论是修改,还是添加,都没影响到复原。这就是分支的作用。这个功能是不是让你省去了很多工作量呢。


TortoiseGit上传新的项目


  1. 创建一个版本库

创建一个文件夹GitDemo,然后  右键--Git Create repository here...

此处不用勾选Make is Bare

确定后,在GitDemo文件夹下回多一个.git文件夹【电脑要设置为显示隐藏文件夹】

此文件夹,尽量不要乱修改或删除。

2.创建一个文件,然后提交(commit)到版本库[这个操作可以在离线状态操作]

2.1选择Git Commit->"master"

2.2填写message,勾选要commit的文件,然后点击OK。会在弹出一个窗口点击close即可。

3.然后在program中添加一个新的方法method。当文件代码改变,那么文件会显示为一个红色感叹号

4.将新增的代码,提交到版本库中,参考2.1和2.2步。

5.查看日志

在日志中,文件更改的信息,都很清楚。

6.将代码推送(push)到云端,例如:github、oschina上面

1、如果在github上已经建立好了项目,那直接拷贝项目地址过来就ok

2、在github上新建立一个项目,请参考GitHub之新建项目(Create a New Repository).note

将电脑得代码push到云端。

右键-->tortoiseGit-->push

设置好URL,确定。然后开始push,输入用户名,输入密码就OK了

输入用户名,后面还要输入密码,然后等待成功。


用户名和密码问题


TortoiseGit在提交时总数会提示你输入用户名密码,非常麻烦。解决方案如下:

方法一:

[credential]

helper = store

保存,输入一次密码后第二次就会记住密码了


Tag的使用


Tag就是起到提醒自己而特意设的一个标记。

如下:如何某个地方是发布过版本的地方,你打Tag就可以很清楚的知道。


revert和reset版本回滚


reset(移动分支的指针)

reset命令把当前分支指向另一个位置,并且相应的变动工作区和暂存区。

revert

git revert用一个新提交来消除一个历史提交所做的任何修改。

  • git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。
  • 在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本时有区别。因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现,减少冲突。但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入,产生很多冲突。关于这一点,不太理解的可以看这篇文章

下面用具体场景来具体说明怎么使用

1、如何你在修改了一些代码,但没有commit,但突然不想要了怎么办??

从这里可以看出,这些修改只在工作区中

一般这个我都使用图形化工具操作

这个操作让工作区回到上次提交的状态,还能针对某个文件这样做。

为什么是revert呢?不是应该使用reset吗?

2、如果修改已经commit到本地版本库了,如何撤销这次提交呢??

用命令行撤销commit,参考这个 http://zhyq0826.iteye.com/blog/1671638

图形操作

版本会退到上一个版本,但是可以看到“test”版本还在log里面,刷新就不见了


TortoiseGit操作submodule


克隆带子模组的版本库的步骤

克隆带子模组的git库,并不能自动将子模组的版本库克隆出来,对于只关心项目本身的数据,而不关心项目引用的外部项目数据的用户,这个功能非常好,数据没有冗余而且克隆的速度也很快。

第一步:克隆super主版本库

在工作区中克隆主主版本库后,会发现子模组的版本库并没有克隆,只有将存放子模组版本库的目录克隆下来了。

第二步:克隆子模组

如果需要克隆出子模组形式引用的外部库,首先需要执行Submodule Update操作。

在需要作克隆子模组的Git工作区中右击,选择“TortoiseGit->Submodule Update...”,点击“OK”即可。

操作后就会把子模组的版本库克隆下来。

如何做的提交主工程就能提交submodule????

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

TortoiseGit工具使用 的相关文章

  • Ansible git clone“权限被拒绝”但直接 git clone 工作

    我在使用 Ansible 时遇到了一个令人不安的问题 我使用当前主机的 ssh 密钥在我的环境中设置 git 克隆 name Add user Public Key copy src Users alexgrs ssh id rsa pub
  • git-daemon 的日志保存在哪里? (Windows 上的 Git 使用 Cygwin)

    我正在将 git daemon 作为 Windows 服务运行 使用创建进程 服务中使用的命令是 git daemon reuseaddr base path data test work export all verbose enable
  • 如何使用 BFG 删除受保护的提交

    使用 BFG 清理存储库时 https rtyley github io bfg repo cleaner https rtyley github io bfg repo cleaner 遇到以下情况 Protected commits T
  • 如何从“git log”中查看 Git 中的特定版本?

    My git log显示为 enter code here git trial git log commit 4c5bc66ae50780cf8dcaf032da98422aea6e2cf7 Author king lt email pro
  • Git:检查文件是否存在于某个版本

    在我的应用程序中 我使用 git 对一些外部文件进行版本管理 我正在使用类似的命令git show HEAD 1 some file获取文件的某个版本 基于 git 标签 提交哈希或与 HEAD 的关系 当文件不存在时 会输出 致命 消息
  • 子 git 存储库作为主存储库的子集

    我正在寻找一种方法来设置 git 存储库 其中包括来自较大存储库的文件子集 并从该主存储库继承历史记录 我的主要动机是能够通过 GitHub 共享代码子集 我目前通过单个 git 存储库管理我的研究相关 主要是 Matlab 代码 代码本身
  • 获取签出修订版的 git 标签?

    我正在做 git tag current tag example to test task git checkout tag example to test task HEAD is now at 75fdde3 commit commen
  • 如何为新的 eclipse (neon) java 项目初始化 git

    我安装了 eclipse Neon 的新副本 并在一个新的闪亮工作区中创建了一个新的 gradle java 项目 将 git 添加到聚会中的最佳实践是什么 我读到在项目目录中初始化 git 是真是个坏主意 https stackoverf
  • 克隆包含所有子模块的 git 存储库

    我有一个工作 git 存储库 其中包含几个子模块 通过克隆不同的存储库获得 现在 我想要复制整个存储库 包含所有子模块 通过使用推送或克隆到另一台机器上的裸 git 存储库 我很高兴失去子模块的历史记录 我只是对保留它们的内容感兴趣 这可能
  • Git 子模块在 Windows 上更新缓慢

    Git 子模块在 Windows 上似乎非常慢 为了测试性能 我创建了 3 个裸存储库并向它们提交了 3 条独立消息 未存储文件 然后 我将每个裸存储库作为子模块添加到新的 git 存储库中 并执行子模块更新 花费了 5 秒多的时间 当使用
  • Sourcetree 2.1.2.5 - 显示“未提交的更改”,但没有任何待处理的内容

    我有一个以前没有遇到过的问题 即使我没有什么可提交的 并尝试将我的分支重置为 Sourcetree 显示的最新提交Uncommitted changes 根据 Atlassian 论坛的说法 通常有两个原因 您的工作目录中有很多很多未暂存的
  • Git:man 命令不起作用

    在 Git Bash 中 他们给了我一个error用于返回 man command man git bash man command not found 我的 Git 版本 git version git version 2 18 0 wi
  • Hudson 结帐卡在“git fetch”处

    我正在使用 git 版本 1 6 2 2 1669 g7eaf8 在 Hudson 1 314 上使用 Hudson Git 插件 0 7 3 当我触发构建时 Hudson 执行 git fetch 但它永远不会返回 我把一只卡在那里14天
  • Git 拉回 master 中的提交?

    一位同事 我们称之为亚伦 被指派翻新网站的一部分作为长期项目 他创建了一个新的 Git 分支 名为aaron 他所有的改变都是在这个分支上进行的 当他工作时 我继续维护整个网站 将我的更改提交给master 最终 Aaron 将他的分支合并
  • 如何在 git diff 中按标点符号拆分单词?

    我对以下命令有一些运气 git diff color words lt gt space lt gt 但它似乎没有在第一个字符类中正确地否定方括号 我试过这个 git diff color words lt gt space lt gt 为
  • 如何像对待普通目录一样对待嵌套存储库(子模块)?

    我的 WordPress 网站是使用 Git 进行版本控制的 包括wp content plugins 文件夹 现在有一个插件 wp editormd 带有自己的 Git 存储库 wp content plugins wp editormd
  • Git:结帐而不运行结帐后挂钩

    我有一个我喜欢的结帐后挂钩 大多数时候 但有时我知道运行它会浪费时间 或者 因为它会删除并重建我的开发数据库 所以我不希望它去做它的事情 有没有跳过钩子的 git 选项 公平地说 我已经开始寻找一个了 我认为没有命令行选项可以完成您想要的操
  • Gerrit 安装后无法克隆所有项目存储库

    我有一个新设置的 Gerrit 实例 目前只有两个存储库 所有项目 binutils 测试 尝试克隆所有项目时 我收到以下错误 git clone ssh user hostname 29418 All Projects Initializ
  • GitHub API:标记提交所属(与 git describe --tag 并行)

    我正在使用 GitHub API 进行实验octokit https github com octokit octokit rb红宝石 我的目标是能够提取提交 SHA 所属的 标签 现在我可以使用命令行轻松地执行此操作 gt git des
  • 节点项目的 Azure git 部署失败

    我正在尝试将我的项目部署到azure 它正在失败 这些是我采取的步骤 git init git config core longpaths true git add git commit m initial commit 所有这些都有效 我

随机推荐

  • zynq ALSA

    设计参考的代码PS和PL端的下载链接如下 linuxkernel版本号4 4 基于Zedboard 的ADAU1761功放芯片 ADI公司kernel和hdlgit链接地址 Took Linux device tree is include
  • 镁光闪存颗粒对照表_内存颗粒型号识别

    容量 MB Samsung 三星 ETRON 钰创 Zentel 力积 Hynix 海力士 Elpida 尔必达 2MB N A EM636165TS 6G N A N A 8MB K4S641632N EM638165TS 6G A3V6
  • 面向对象以及特点

    历史 汇编语言 C语言 对象过程化 C Java javaScript Python PHP 面向对象编程思想 三大特征 1 抽象 封装 抽象是指强调实体的本质 内在的属性 在系统开发中 抽象指的是在决定如何实现对象之前的对象的意义和行为
  • 32通过tcp发送数组_西门子S71500与S7300PN的TCP通信(图文)

    加微信号 15021230050 邀请您加入 信控电气 微信群 点击文章最下方 阅读原文 加入超级工控技术群 免费学习PLC编程技术 包吃住还有工资 西门子S7 1500与S7 300PN的TCP通信 1 概述 2 自动化解决方案 2 1网
  • 摆动排序leetcode324

    给你一个整数数组 nums 将它重新排列成 nums 0 lt nums 1 gt nums 2 lt nums 3 的顺序 你可以假设所有输入数组都可以得到满足题目要求的结果 示例 1 输入 nums 1 5 1 1 6 4 输出 1 6
  • 【单片机】STM32F030硬件SPI的坑

    使用的是STM32F030F4P6 这是一个小封装的单片机 但是五脏俱全 很多功能 就是引脚不多 使用到SPI的时候感觉应该和以前用过的STM32F103系列是一样的 寄存器的结构几乎是完全一样的 寄存器操作的程序甚至都能兼容 但是在使用的
  • Flutter1.0实践要点(Dart语法回顾)

    Flutter1 0实践要点 Flutter 文档 Flutter widgets文档 实践要点 dart文件命名使用小写加下滑线 dart类命名使用驼峰 Dart语法 绝对定位widget Stack Positioned url包裹wi
  • A Survey of Learning on Small Data(二)

    本文是 A Survey of Learning on Small Data 的翻译 原文链接 小数据学习综述 4 几何角度 4 1 Frechet均值 4 2 欧几里得均值 4 3 非欧均值 4 3 1 Poincare质心 4 3 2
  • 面试常问:Hive分区与分桶的区别

    分区表与分桶表的区别 创建表时可以同时为表创建一个或者多个分区 我们在加载数据时为期指定具体的 分区 查询数据时可以指定具体的分区从而提高效率 分区表是把分区当成目录的 分区实际上是将表文件分成多个有标记的小文件以方便查询 分区表 在Hiv
  • Ubuntu下安装AndroidStudio

    前言 接触Ubuntu系统有一段时间了 对Ubuntu下软件的操作有了一定的了解 本文结合所学的知识 在Ubuntu系统下安装android开发工具 Android Studio 步骤 第一步 安装JDK 打开终端 使用快捷键 CTR AL
  • Result of ‘Stream.peek()‘ is ignored

    firstPublish getFunds stream filter firstFund gt adviceCodeSet contains firstFund getCode peek firstFund gt firstFund se
  • 不要再焦虑了:BATJ大厂给程序员们价值百万的职业规划(18-35岁,35岁以后)

    顺坡下山 另辟蹊径 虽然你感觉互联网程序员好像已经人满为患了 但中国很多其他行业还根本招不到什么像样的程序员的 只是现在制造业国企程序员待遇太低 一般也就万把块 比制造业其他工种稍微高一点 但比互联网低很多 只要肯降薪去这些国企央企 也算一
  • 浅论静态测试的价值

    曾经看过一篇介绍某静态测试工具的文章 说该工具可以发现所有的代码错误 我觉得很好奇 问 如果我写了一个加法函数 把加号写成减号 如int add int a int b return a b 可以找出来吗 答 这是代码功能错误 当然不能找出
  • Qt每日小结——QListWidget使用总结

    最近需要使用QListWidget完成一个样本输入显示及交互的功能 需要实现的功能基本是这样的 点击添加样本 将txt文件名输入到左侧的列表中 单击 shift ctrl多选item后点击移除样本 将样本从列表中移除 点击清空列表 则将列表
  • "Access denied for user 'root@localhost' 试一下你的mysql是不是用任何密码都可以登录,如果是的话这里...

    https blog csdn net light breeze article details 82070222 花了三小时 竟然是因为这个 转载于 https www cnblogs com MarsMercury p 11586010
  • List接口简介

    List接口简介 List是Collection的子接口 其最大的特点是允许保存有重复元素的数据 该接口的定义如下 public interface List
  • kafka如何动态消费新增topic主题

    一 解决痛点 使用spring kafka客户端 每次新增topic主题 都需要硬编码客户端并重新发布服务 操作麻烦耗时长 kafkaListener虽可以支持通配符消费topic 缺点是并发数需要手动改并且重启服务 对于业务逻辑相似场景
  • 蓝桥杯算法训练VIP-阿尔法乘积

    题目 题目链接 题解 实现题 按着题目描述实现就行了 很坑的一点是题目规定数据量6e6 但是给的样例是十位数 离谱 开个longlong 代码 include
  • Python爬虫及网络编程相关面试题整理

    1 你用过的爬虫框架或者模块有哪些 谈谈他们的区别或者优缺点 Python自带 urllib urllib2 第 三 方 requests 框 架 Scrapy urllib和urllib2模块都做与请求URL相关的操作 但他们提供不同的功
  • TortoiseGit工具使用

    TortoiseGit clone commit push pull 3 1 克隆项目 打开资源管理器 我的电脑 计算机 进入规划好的某个目录中 然后在空白处点击鼠标右键 选择 TortoiseGit gt 克隆 Clone 弹出克隆项目对