git使用笔记

记录自己在使用git中所用到的命令,算是半个笔记吧~

git merge & git rebase

参考

git初次运行时的配置

三个地方

  • 系统级别,/etc/gitconfig, 修改此选项时需要加上 --system选项
  • 当前用户级别,~/.gitconfig, 修改此选项时需要加上--global选项
  • 当前仓库级别,.git/config。 低级别覆盖高级别的配置信息。

配置信息

  • 用户名   git config --global user.name "John Doe"
  • 用户邮箱  git config --global user.email [email protected]
  • 编辑器   git config --global core.editor vim

查看信息

  • 查看所有配置信息 git config --list
  • 查看某项配置信息 git config user.name

忽略文件

.gitignore文件忽略不想进行版本控制的文件。 参考https://github.com/github/gitignore

命令的详情

git add

三个作用:

  • 添加追踪
  • 添加到暂存区
  • 标记冲突文件状态为已解决

git status -s

如果嫌弃不带-s的命令输出的信息太繁杂,那么可以使用这个。 新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记。 出现在右边的 M 表示该文件被修改了但是还没放入暂存区,出现在靠左边的 M 表示该文件被修改了并放入了暂存区。

查看修改

git diff 查看尚未暂存的文件更新了哪些部分 git diff --staged 查看已暂存的将要添加到下次提交里的内容

提交更新

git commit

-m 添加一段信息,作为提交说明 -a 跳过暂存区,直接将已追踪的文件暂存起来并提交--amend 此次提交的结果替代上次提交的结果

删除文件

git rm

从已跟踪文件清单中移除(确切地说,是从暂存区域移除),并连带从工作目录中删除指定的文件 -f 删除之前修改过并且已经放到暂存区域的文件 --cached 把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中

移动文件(或重命名)

git mv等价于

mv 
git rm
git add

查看提交

git log

-p  显示每次提交的差异 -p -2  显示最近两次的差异 --stat  每次提交的简略的统计信息 --graph 显示 ASCII 图形表示的分支合并历史。 --pretty使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和format(后跟指定格式)。

移除暂存文件

git reset HEAD <file>... 将文件从暂存区移除

撤销文件的修改内容

git checkout -- <file>... 将此文件做的文件全部撤销

使用总结

git基本命令

git init 在执行命令的目录下创建git仓库

git add * 添加所有的文件到缓存区

git commit * -m 提交所有追踪的文件到git仓库

git pull origin master 从远程仓库拉代码到本地git仓库

git push origin master 将自己的代码推送到远程git仓库

创建新的分支

git branch  显示所有的分支

git branch -a 显示所有的分支包括远程的分支

git checkout -b branch_name 创建branch_name分支并切换到该分支上

git checkout branch_name 切换到branch_name分支上

关于.gitignore文件

这个文件顾名思义是起到忽略作用的,在git仓库中使用此文件,将不需要添加进git仓库的文件排除在外。可是在使用的时候,会遇到向其中添加了文件名,却 不起作用的情况。很奇怪,参考网上的说法,当已经添加该文件进入git仓库后,再在.gitignore中除去该文件,就会遇到这种情况,我就是属于这种情况,这时需要将其从仓库中删除,然后再执行git add时就会忽略掉该文件..gitignore只对未追踪的文件有过滤效果。可参考如下代码

git rm -r --cached .
git add .
git commit -m "comment"

关于本地分支与远程分支的链接关系

当从远程仓库上面拉下代码之后,其中有若干分支,如若想在本地建立一个分支,并使之与远程分支中的某个分支对应,那么该如何操作呢?

git checkout --track origin/branch_name local_branch_name 这个命令会自动创建local_branch_name,如果它已经存在了,那么将执行失败~

查看、删除远程仓库分支/Tag

试了试将所有的feature分支都推送到远程仓库,后来发现那个分支基本上没啥用,在将feature分支merge到dev分支上后,feature分支就一直处于当初的那个状态,当dev一直向前走的时候,你再次回到该feature分支,相当于回到了dev分支之前的某个节点,因此我认为将其推送到远程仓库是没有多大的意义的,所以动起了删掉所有本地和远程仓库中已merge的feature分支。

首先是查看远程仓库里面所含有的feature分支:

asahi@asahis-MBP  ~/AndroidStudioProjects/NHKNews   master  git branch -a
  dev
  feature-remote
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/dev
  remotes/origin/feature-main-page
  remotes/origin/feature-remote
  remotes/origin/master

当使用git branch -d feature-main-page之后,得到的结果如上,可是我只是删除了本地的分支,远程的分支依然还在,该如何删除这个远程仓库里面的分支呢?有git命令为git push origin --delete origin/feature-main-page,可是出现错误,不能删除,因此试了另外一个命令git push origin :feature-main-page,成功删除。然后对于feature-remote分支,直接使用前条命令,可将本地与远程仓库里面的分支一起删除.

再次使用git remote show origin,查询得到的结果如下:

* remote origin
  Fetch URL: [email protected]:xuchuanjun/NHKNews.git
  Push  URL: [email protected]:xuchuanjun/NHKNews.git
  HEAD branch: master
  Remote branches:
    dev    tracked
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local refs configured for 'git push':
    dev    pushes to dev    (up to date)
    master pushes to master (up to date)

总结:超强的总结

Read more

Volcano 与 Kubernetes GPU 调度学习笔记

本笔记系统整理 Volcano 调度器、Kubernetes 调度框架、GPU Device Plugin、HAMi 等云原生 AI 调度领域的核心知识,适合用于学习、复习和工程实践参考。 目录 * 第一部分:Volcano 入门 * 1. Volcano 是什么 * 2. 安装与快速使用 * 3. 核心特性一览 * 第二部分:Volcano 整体架构 * 4. Volcano 解决的核心问题 * 5. 整体架构与数据流 * 6. 三层抽象模型 * 第三部分:Volcano 核心实现原理 * 7. Session 机制 * 8. Gang Scheduling 实现 * 9. Queue 与 DRF 公平调度

容器镜像(4):镜像的常用工具箱

容器镜像(4):镜像的常用工具箱

前几篇在讲多架构镜像时已经用过 skopeo 和 crane 做镜像复制,这篇系统整理这两个工具的完整能力,同时介绍几个日常操作镜像时同样好用的工具。 一、skopeo:不依赖 Daemon 的镜像瑞士军刀 skopeo 的核心价值是绕过 Docker daemon,直接与 Registry API 交互。上一篇用它做镜像复制和离线传输,但它的能力远不止于此。 1.1 安装 # Ubuntu / Debian sudo apt install -y skopeo skopeo --version # skopeo version 1.15.1 1.2 inspect:免拉取检查镜像元数据 docker inspect 需要先把镜像拉到本地,skopeo inspect 直接向 Registry

容器镜像(3):多架构镜像构建

容器镜像(3):多架构镜像构建

一、什么是多架构镜像 1.1 OCI Image Index 上一篇介绍了单平台镜像的结构:一个 Manifest 指向 Config 和若干 Layer blob。多架构镜像在此之上多了一层——OCI Image Index(也叫 Manifest List),是一个轻量的索引文件,把多个单平台 Manifest 组织在一起: $ docker manifest inspect golang:1.22-alpine { "schemaVersion": 2, "mediaType": "application/vnd.oci.image.index.v1+json", "manifests&

容器镜像(2):containerd 视角下的镜像

容器镜像(2):containerd 视角下的镜像

一、为什么需要了解 containerd 如果你只用 docker run 跑容器,从来不关心底层,那可以不了解 containerd。但如果你在用 Kubernetes,或者想真正理解"容器运行时"是什么,containerd 是绕不开的。 事实上,当你执行 docker run 的时候,containerd 早就在后台悄悄工作了——Docker 从 1.11 版本开始,就把核心运行时剥离出来交给 containerd 负责。 1.1 Docker 的架构演变 早期的 Docker(1.10 及之前)是一个"大一统"的单体程序:一个 dockerd