Git教程学习笔记及VScode中Git使用

2023-05-16

文章目录

    • 前言
    • 1.配置git
    • 2.创建版本库
    • 3.版本回退
    • 4.工作区和暂存区
    • 5.添加远程仓库
    • 6.分支管理
        • 处理bug分支
        • 多人协作
    • 7.标签管理
    • 8.自定义git
    • 9.VScode中的Git使用

前言

欢迎通过我的个人博客看本篇文章https://sunmengxin.cn/Git-tutorial/
  一直想学git,奈何初学时相关的新名词太多,一直没理解太深,刚好最近有时间把廖雪峰的git教程看了一遍,峰哥的教程写的很通俗易懂有条理就不说了。但细数起来,git的命令还是有点多的,就在学的同时记了些笔记分享一下。
  对于新手,非常建议学习git之前,先把GitHub玩一遍,这里也推荐一个GitHub学习相关的网站,写的也很通俗易懂——Git北京。

1.配置git

$ git config --global user.name "Your Name"  配置git全局用户名
$ git config --global user.email "email@example.com"  配置git全局邮箱
$ git config --global credential.helper store  保存登录密码

2.创建版本库

$ mkdir learngit
$ cd learngit
$ pwd
$ git init
$ git add readme.txt
$ git add readme.txt

3.版本回退

$ git status
$ git diff readme.txt

$ git log (--pretty=oneline)
$ git reset --hard HEAD^
$ git reflog 记录git的每次命令

4.工作区和暂存区

Git管理的文件分为:工作区,版本库;版本库又分为暂存区stage和暂存区分支master(仓库)

工作区>>>>暂存区>>>>仓库
git add把文件从工作区>>>>暂存区;
git commit把文件从暂存区>>>>仓库,
git diff查看工作区和暂存区差异,
git diff HEAD -- filename 查看暂存区和仓库差异,
git diff HEAD 查看工作区和仓库的差异,
git checkout类似git add反向命令,指对工作区的操作
git reset HEAD类似git commit反向命令,指对缓存区的操作

$ git diff HEAD -- readme.txt 
$ git reset HEAD readme.txt  缓存区的修改撤销放回工作区
$ git checkout -- readme.txt  丢弃工作区的修改

5.添加远程仓库

$ ssh-keygen -t rsa -C "youremail@example.com"
$ git remote add origin git@github.com:michaelliao/learngit.git
$ git push -u origin master  加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来
$ git push origin master

$ git clone git@github.com:michaelliao/gitskills.git

6.分支管理

$ git checkout -b dev
$ git branch dev  创建分支
$ git checkout dev
$ git branch 查看当前分支

$ git checkout master
$ git merge dev
$ git branch -d dev 删除
& git branch -D <name>强行删除。
$ git branch
$ git switch -c dev
$ git switch master
$ git merge --abort  有冲突时放弃merge

$ git log --graph --pretty=oneline --abbrev-commit   按行显示 缩写

强制禁用fast forward,防止删除分支后丢掉分支部分
$ git merge --no-ff -m "merge with no-ff" dev

处理bug分支

	$ git stash  压入存储区
	$ git stash list 查看存储区
	$ git stash apply && $ git stash drop 恢复删除临时区
	$ git stash pop  同上
	$ git cherry-pick 4c805e2  将master的修改操作复制到当前分支
	
	$ git stash apply stash@{0}

多人协作

	$ git remote 查看远程仓库名称
	$ git remote -v  查看远程仓库信息
	$ git push origin master  推送master分支
	$ git push origin dev  推送dev分支
	
	$ git clone git@github.com:michaelliao/learngit.git  抓取分支
	$ git checkout -b dev origin/dev  创建远程origin的dev分支到本低
	$ git pull 把最新的提交从origin/dev抓下来
	$ git branch --set-upstream-to=origin/dev dev  设置dev和origin/dev的链接:
	$ git commit -m "fix env conflict"
	$ git push origin dev
	
	$ git rebase  原本分叉的提交现在变成一条直线

7.标签管理

$ git tag v1.0  给当前版本打标签
$ git tag 显示已有标签
$ git log --pretty=oneline --abbrev-commit
$ git tag v0.9 f52c633 对历史节点打标签
$ git show v0.9 显示版本信息
$ git tag -a v0.1 -m "version 0.1 released" 1094adb  带说明的标签
$ git tag -d v0.1 删除标签
$ git push origin v1.0  推送某个标签到远程
$ git push origin --tags  一次性推送全部尚未推送到远程的本地标签
$ git tag -d v0.9 >> $ git push origin :refs/tags/v0.9  删除远程标签  $ git push origin --delete  tagname

8.自定义git

$ git config --global color.ui true   Git显示颜色
忽略文件 .gitignore 文件 https://github.com/github/gitignore

$ git add -f App.class 强制添加
$ git check-ignore -v App.class

$ git config --global alias.st status
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
$ git config --global alias.last 'log -1'  用git last就能显示最近一次的提交
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
每个仓库的Git配置文件都放在.git/config文件中

9.VScode中的Git使用

  VScode的安装这里就不多说了,打开VScode:文件->首选项->设置,然后点击图中红圈里的按钮:
在这里插入图片描述
  在设置里添加以下两句,其中第一句添加git安装位置(确保安装git时勾选添加到系统变量),第二局将VScode中的终端换成默认Git Bash

"git.path": "C:\\Program Files\\Git\\cmd\\git.exe",
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",

然后用VScode打开练习Git的文件夹,Ctrl+~打开终端输入git status

$ git status 
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   "git\346\200\273\347\273\223.txt"

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

Git教程学习笔记及VScode中Git使用 的相关文章

  • git push origin 分支名总是推送到 master

    我搜索了一下 但似乎找不到答案 在我可以访问的两个盒子上 当我执行 git push dry run origin mytestbranch 时 我得到以下结果 To email protected cdn cgi l email prot
  • 是否可以在一次 git 调用中取消设置多个 git 配置值,而不是逐一取消设置?

    我需要自动取消全局 git 配置文件中的许多别名 diff difftool merge mergetool 设置 现在我正在打电话git config global unset对于他们每个人来说 这有点慢 嗯 相对而言 大约需要 3 秒
  • git分支和标签如何存储在磁盘中?

    我最近检查了我工作中的一个 git 存储库 其中有 10 000 多个分支和 30000 多个标签 新克隆后 存储库的总大小为 12Gigs 我确信没有理由拥有 10000 个分支机构 所以我相信它们会占用磁盘中相当大的空间 所以 我的问题
  • git:如何查明某个分支是否有拉取请求?

    我在 git 分支上 有没有办法查看该分支是否有拉取请求 在这种特殊情况下 Atlassian Stash 用于管理拉取请求 当然我可以使用Stash的Web界面来搜索拉取请求 但我也可以仅使用 git 命令行工具从脚本执行此操作吗 Cor
  • 命令来确定当前 HEAD 的上游引用?

    我正在寻找我所希望的简单的一行命令确定当前签出分支的正确上游引用 本质上就像是 git branch remote HEAD 如果有效 会将符号模式 HEAD 转换为当前分支名称 然后选项 remote然后将其更改为远程跟踪分支的引用 但它
  • 如何像对待普通目录一样对待嵌套存储库(子模块)?

    我的 WordPress 网站是使用 Git 进行版本控制的 包括wp content plugins 文件夹 现在有一个插件 wp editormd 带有自己的 Git 存储库 wp content plugins wp editormd
  • 使用 GIT 自动增加 AssemblyFileVersion

    好吧 我知道这可能不是传统的 但除此之外 我使用 AssemblyFileVersion 作为我的 构建名称 字符串 它的格式如下 File Version information for an assembly consists of t
  • 我可以通过链接分享我的私人 GitHub 存储库吗?

    我在 GitHub 上的私人存储库中有一个 Java 应用程序 我想与没有帐户的人共享它 我在网站上没有找到任何与此相关的选项 有没有办法做到这一点 协作者只能是 GitHub 用户 无法在非 Github 用户之间共享私有存储库 您需要
  • 如何重命名 GitHub 网站上的目录/文件夹?

    我在 GitHub 网站上找到了一种方法rename https github com blog 1436 moving and renaming files on github一个文件并成功完成 我也找到了一种方法rename https
  • Git 子模块:[电子邮件受保护]:权限被拒绝(公钥)。致命:无法从远程存储库读取

    我有一个问题git submodule update init remote 我收到错误 权限被拒绝和克隆失败 但我将 SSH 密钥添加到了我的 github 存储库中 我可以拉 推 git 克隆 我拥有所有需要的访问权限 我使用操作系统
  • Git - 推送到远程存储库中的远程跟踪分支

    当简单地做git push到远程存储库 其master分支得到更新 对于非裸存储库来说 这是不希望出现的情况 最近的 Git 版本显示的警告消息清楚地表明了这一点 我希望能够推送到远程存储库 并拥有其之一远程追踪分支进行更新 稍后 当我登录
  • Git:如何使外部存储库和嵌入式存储库作为通用/独立存储库工作?

    我有一个大项目 比方说A repo 其中有一个子文件夹来自B repo 当我提交时 我会遇到如下警告A repo warning adding embedded git repository extractor annotator serv
  • 具有单独 work_tree 的 Git 子模块

    我按照本页上的教程使通过 Git 部署我的网站变得简单 http toroid org ams git website howto http toroid org ams git website howto 到目前为止一切都很好 但是我最近
  • Git 无效的修订范围 Symfony2 Composer 外部包

    RuntimeException Failed to execute git log 18efcf67d236d5bbf46ac67820250dffd0474b6e 94e2146f525fa1367e15646fa273e5b34f92
  • Git 不断提示我输入密码

    我已经使用 Git 一段时间了 但是不断要求输入密码开始让我感到厌烦 我使用的是 Mac OS X 和 GitHub 并且按照 GitHub 的说明设置了 Git 和我的 SSH 密钥设置 Git 页面 http help github c
  • 无法使用 git 配置文件进行 ssh

    我知道它被问了很多次 但我无法得到我的问题的答案 我正在尝试使用配置文件 ssh 到系统 配置文件是 Host qa HostName 10 218 70 345 User user IdentityFile C Users bean ss
  • refname 不明确且拉取失败

    我运行了以下命令 因为我想将生产分支移回而不必先签出 git branch f production HEAD 1 现在 当我检查生产时 我收到以下警告 warning refname production is ambiguous 然后我
  • 如何解决 VSTS 中拉取请求中的合并冲突?

    我已经创建了拉取请求 我进入了这个 批准 按钮不执行任何操作 并且 完成 被禁用 如何解决拉取请求中的冲突 Update 微软刚刚添加了基于浏览器的合并 这可能会让你摆脱小冲突的困境 并提供自 Sprint 150 起改进了不同场景的可视化
  • 代表 Git 存储库的数学结构是什么

    我正在学习 Git 如果我能描述一下代表 Git 存储库的数学结构 那就太好了 例如 它是一个有向无环图 它的节点代表提交 它的节点有代表分支等的标签 每个节点最多一个标签 没有标签使用两次 我知道这个描述不正确 我只是想解释我正在寻找的内
  • 如何将更改移出主分支

    基本问题 但这一直发生在我身上 进行更改working branch 切换到master git merge working branch git push cap deploy 到舞台 泡一杯新茶 然后我回来思考其他事情并开始做出一些改变

随机推荐

  • 12.【openCV常用函数模板】

    opency常用关键字 1 头文件的引用2 命名空间的引用3 读入文件的引用4 处理图像的数据结构5 定义窗口的引用6 自定义窗口长宽度的引用7 展示窗口的引用8 窗口展示时间的引用9 清除窗口的引用10 举列子10 1代码展示 10 2效
  • 利用novnc登录绕过WFA

    0x00 简介 前端时间看了一个新闻说是一个安全人员研究使用webVNC来钓鱼绕过MFA多因子验证 xff0c 因为现在很多环境钓鱼抓到的账号密码 xff0c 在登录时候可能会要求输入安全码或者PIN马之类的东西 xff0c 学名叫做MFA
  • 图像分割损失函数OhemCELoss

    OhemCELoss函数简介 OhemCELoss函数 xff08 Online hard example mining cross entropy loss 的缩写 xff09 分割任务中的OhemCELoss函数 xff1a 其实就是分
  • 02_FreeRTOS内核实现---任务的定义与任务切换

    一 什么是任务 在多任务系统中 xff0c 我们根据功能的不同 xff0c 把整个系统分割成多个独立且无法返回的函数 xff0c 这种函数称之为任务 二 创建任务 1 定义任务栈 在多任务系统中 xff0c 每个任务都是独立的 xff0c
  • ROS学习笔记1:Ubuntu20.04系统安装图文讲解(双系统,机械硬盘)

    系列前言 xff1a 本人BIT机械专业大三学生 xff0c 可以说是计算机小白 近年来学校以咱们 智能制造与智能车辆班 为试验班对机械专业进行探索性课改 xff0c 加入了大量控制类课程 xff08 数据结构 xff0c ROS xff0
  • ROS学习笔记3:ROS架构(了解)

    笔记3不涉及实际操作 xff0c 主要是用自己的语言和思路简略整理了 ROS机器人开发实践 一书第2章内容 第一次看这一章的内容会有不知道在讲什么的感觉 xff0c 但这一章的内容确实对后续实践操作章节的理解有非常大的帮助 一 ROS架构
  • SLAM学习笔记2:SLAM的数学表述

    1 SLAM问题 xff1a 在了解了SLAM中各个模块的组成和主要功能后 xff0c 我们将上升到理性层次 xff0c 用数学语言来描述SLAM过程 现在假设由无人车搭载传感器 对于传感器来说 xff0c 虽然它的运动是时间连续的 xff
  • ROS学习笔记10:TF坐标变换(ROS常用组件)

    前言 xff1a 机器人本体和机器人的工作环境中往往存在大量的组件元素 xff0c 在机器人设计和应用中会涉及不同组件的位置和姿态 xff0c 这就需要引入坐标系和坐标变换的概念 一 机器人中空间描述和变换 xff1a 1 位置描述 xff
  • ROS学习笔记11:launch启动文件(ROS常用组件)

    一 launch启动文件介绍 xff1a 上节的海龟跟随实验 xff0c 输入的指令比较繁杂 xff0c 很容易输错命令 对于这种多节点任务 xff0c 可以使用启动文件 启动文件是ROS中一种可以通过xml文件 xff0c 同时启动多个节
  • 学习ARM架构,系统移植和驱动开发总结

    本次结束了对ARM架构 xff0c 系统移植和驱动开发的学习 xff0c 它们都是属于底层 xff0c 难度想对都比较的难一点 xff0c 但先学习arm架构之后去学习系统移植和驱动开发 xff0c 会使自己对系统移植和驱动开发容易理解点
  • Robocup2D环境搭配以及安装(Ubuntu18.04)

    个人是看过很多安装教程并且在一次次实验成 xfeff 功后得出的成果 xff1a 首先 xff0c 在gitee网站下载安装所需的文件夹 xfeff gitee网站下载zip压缩包 其次 xff0c 进行依赖库的安装 终端输入 sudo a
  • 树莓派配置网络实现ssh登录

    上面一篇文章我实现了串口方式访问树莓派 xff0c 可以实现树莓派开发 xff0c 但每次都需要接线 xff0c 比较麻烦所以我们可以对树莓派进行配置让他可以用IP地址登录 1 配置树莓派接入网络 sudo nano etc wpa sup
  • 字符串查找函数strstr

    前言 xff1a 本章我们将学习如何用strstr函数在字符串中查找是否存在指定的字符串 strstr 功能 xff1a 在一个字符串中查找是否存在指定的字符串 xff08 定位子字符串 xff09 cplusplus介绍如下 xff1a
  • Module not found: Error: Can‘t resolve ‘querystring‘ in ‘xxxxxxxxx‘

    解决办法 request js里面 import qs from 34 querystring 34 改为import qs from 34 qs 34
  • 【C语言】初学者写基础代码的基本步骤

    一 写代码 xff08 底阿妈 xff09 步骤 xff1a 1 创建一个项目 2 创建一个源文件 什么是源文件 xff1a xxxx c c开头的叫源文件 xxxx h h开头的叫头文件 3 写代码 xff08 底阿妈 xff09 one
  • ROS新手学习路线

    希望这些信息能够帮助你学习ROS 如果你有任何其他问题 xff0c 请随时告诉我 安装ROS 首先 xff0c 你需要在你的计算机上安装ROS 请参阅官方文档中的 安装 章节 xff0c 了解如何在你的系统上安装ROS xff1a http
  • JAVA学习心得体会

    这周是考试结束第一周 xff0c 刚开始继续学习JAVA时 xff0c 短时间不学习就感觉遗忘了许多有关JAVA的知识 xff0c 所以及时的复习所学内容是真的很重要 通过学长学姐的介绍 xff0c 我发现Typora记笔记是真的很方便 x
  • Ubuntu18.04在ROS下利用realsenseD435i相机实时运行ORB-SLAM2

    1 安装realsenseD435i的SDK Librealsense 可以参照这位博主 6条消息 Ubuntu18 04 43 ROS melodic 安装使用 InterRealSenseD435i SDK2和RealSense ROS
  • opencv-python识别魔方特定颜色方块,并输出各方块中心坐标

    先叠个甲 xff08 作者寒假才开始自学opencv xff0c 做题练手 xff0c 还不是很熟练 xff0c 如果有不正确或者有更好的方法 xff0c 欢迎在评论区指出 xff09 题目 xff1a 从网上寻找任一魔方图片 xff0c
  • Git教程学习笔记及VScode中Git使用

    文章目录 前言1 配置git2 创建版本库3 版本回退4 工作区和暂存区5 添加远程仓库6 分支管理处理bug分支多人协作 7 标签管理8 自定义git9 VScode中的Git使用 前言 欢迎通过我的个人博客看本篇文章https sunm