Git使用说明

devtools/2024/11/14 20:26:04/

Git使用说明

git_branch_4">git branch

用于管理分支,包括查看、创建、删除、重命名分支等操作。

  1. git branch: 列出本地仓库中的所有分支,并标识当前所在的分支。
  2. git branch <branch-name>: 创建一个新分支,名称为 <branch-name>
  3. git branch -d <branch-name>: 删除名为 <branch-name> 的本地分支。需要注意,删除分支前需要确保分支中的工作已经合并到其他分支中,否则会丢失提交历史。
  4. git branch -m <old-branch-name> <new-branch-name>: 将名为 <old-branch-name> 的分支重命名为 <new-branch-name>
  5. git branch -a: 列出本地仓库中的所有分支,包括远程仓库中的分支。
  6. git branch -vv: 显示本地分支的详细信息,包括每个分支的最新提交信息以及与远程分支的关联情况。
  7. git branch --merged: 列出已合并到当前分支的分支。
  8. git branch --no-merged: 列出尚未合并到当前分支的分支。

git_status_17">git status

git status 是一个非常常用的 Git 命令,用于查看当前工作目录的状态。以下是一些常用的 git status 方法:

  • 已修改(modified)的文件:即工作区中已经修改但尚未添加到暂存区的文件。
  • 已暂存(staged)的文件:即已经添加到暂存区但尚未提交到版本库的文件。
  • 未跟踪(untracked)的文件:即工作区中尚未添加到 Git 的文件。
  1. git status: 显示当前工作目录的状态,包括已修改(但尚未暂存)、已暂存(但尚未提交)、未跟踪文件等信息。
  2. git status -sgit status --short: 显示简短的状态信息,只显示已修改、已暂存和未跟踪文件的摘要,以减少输出量。
  3. git status -bgit status --branch: 显示当前所在分支的状态,并提示是否有待提交的变更。这个选项还会显示当前分支的跟踪情况。
  4. git status -unogit status --untracked-files=no: 不显示未跟踪文件的状态信息。

git_remote_30">git remote

git remote 命令用于管理远程仓库,包括查看、添加、删除、重命名远程仓库等操作。以下是 git remote 命令的一些常用方法:

  1. git remote: 列出所有远程仓库的名称。
  2. git remote -v: 显示所有远程仓库的名称和对应的 URL。
  3. git remote add <remote-name> <url>: 添加一个新的远程仓库,指定名称为 <remote-name>,URL 为 <url>
  4. git remote remove <remote-name>: 移除指定名称的远程仓库。
  5. git remote rename <old-name> <new-name>: 将远程仓库的名称从 <old-name> 重命名为 <new-name>
  6. git remote show <remote-name>: 显示指定远程仓库的详细信息,包括远程分支和本地分支的跟踪情况。

git_reset_41">git reset

git reset 命令用于撤销提交,可以将当前分支的 HEAD 移动到指定的提交,也可以取消已暂存的文件或取消已提交但尚未推送到远程仓库的提交。以下是一些常用的 git reset 方法:

  1. git reset <commit>:将 HEAD 移动到指定的提交,但保留当前工作目录的状态,将之前的提交视为未暂存状态。这种形式的 reset 称为软重置(soft reset)。
  2. git reset --hard <commit>:将 HEAD 移动到指定的提交,并且重置暂存区和工作目录,丢弃之前的提交和修改。这种形式的 reset 称为硬重置(hard reset)。
  3. git reset HEAD <file>:取消对指定文件的暂存,将文件从暂存区中移除,但保留工作目录中的修改。
  4. git reset --mixed <commit>:这是 git reset 的默认行为。它将 HEAD 移动到指定的提交,同时保留工作目录中的修改,但将这些修改标记为未暂存状态。这种形式的 reset 称为混合重置(mixed reset)。
  5. git reset --hard HEAD:取消当前分支的所有修改,并将 HEAD 指向最新的提交。这可以用来撤销所有的本地变更,并回到最近的提交状态。
  6. git reset --soft HEAD^:将 HEAD 移动到前一个提交,但保留当前修改和暂存状态,使得你可以重新提交之前的变更。

git_add_51">git add

git add 命令用于将文件或目录添加到暂存区,以准备将其包含在下一次提交中。以下是一些常用的 git add 方法:

  1. git add <file>: 将指定的文件添加到暂存区。可以使用相对路径或绝对路径指定文件。
  2. git add .git add --all: 将当前目录下的所有修改过的文件和未跟踪的文件添加到暂存区。
  3. git add -ugit add --update: 将已跟踪的文件的修改添加到暂存区,但不包括未跟踪的文件。
  4. git add -pgit add --patch: 交互式地添加文件到暂存区,可以逐个确认要添加的修改。这个选项可以用来部分地暂存文件的部分修改。
  5. git add -igit add --interactive: 进入交互式模式,可以按需选择要添加到暂存区的文件。

git_commit_60">git commit

git commit 命令用于将暂存区的文件提交到本地仓库中。以下是一些常用的 git commit 方法:

  1. git commit -m "<commit-message>":提交暂存区中的文件,并附带一条提交消息,消息内容由 <commit-message> 指定。这种方式适用于简单的提交,提交消息不需要跨越多行。
  2. git commit -agit commit --all:提交暂存区中的所有修改过的文件,跳过使用 git add 命令暂存文件的步骤。这个选项不会提交未跟踪的文件。
  3. git commit --amend:修改上一次提交的内容。执行该命令后,会打开编辑器,允许你修改上一次提交的提交消息、添加缺失的文件或修改已暂存的文件。
  4. git commit -m "<new-commit-message>" --amend:修改上一次提交的提交消息,并保持提交内容不变。
  5. git commit -vgit commit --verbose:提交文件时显示每个修改的差异,以便更容易理解提交的内容。
  6. git commit --no-verify:跳过提交时的钩子检查。有时候你可能需要暂时禁用钩子来提交一些临时性的修改。

git_push_70">git push

git push 命令用于将本地仓库中的提交推送到远程仓库中。以下是一些常用的 git push 方法:

  1. git push <remote-name> <branch-name>: 将本地分支的提交推送到指定远程仓库的指定分支。例如,git push origin main 将本地的 main 分支推送到远程仓库 origin 上的 main 分支。
  2. git push -u <remote-name> <branch-name>: 将本地分支的提交推送到指定远程仓库的指定分支,并将本地分支与远程分支关联起来。使用 -u 参数可以设置远程分支为默认的上游分支,之后的 git pullgit push 命令将自动使用该分支。
  3. git push --all <remote-name>: 将本地所有分支的提交推送到指定远程仓库。
  4. git push --force <remote-name> <branch-name>: 强制推送本地分支的提交到远程分支,即使远程仓库中的分支已经有了新的提交。注意:强制推送可能会导致远程仓库的提交丢失,慎用该命令。
  5. git push --tags <remote-name>: 将本地所有的标签推送到指定远程仓库。
  6. git push origin --delete <branch-name>: 删除远程仓库上的指定分支。这将从远程仓库中移除指定分支的所有提交。

git_merge_80">git merge

git merge 命令是 Git 中用于合并分支的主要工具之一。下面是一些 git merge 命令的常用方法:

  1. 合并指定分支到当前分支

    phpCopy code
    git merge <branch-name>
    

    这个命令将 <branch-name> 分支上的修改合并到当前分支上。

  2. 普通合并(Non-Fast-Forward Merge)

    sqlCopy code
    git merge --no-ff <branch-name>
    

    使用 --no-ff 选项执行普通合并,即创建一个新的合并提交,而不是使用快进合并。这样可以保留分支的提交历史。

  3. 合并后压缩为一个提交(Squash Merge)

    sqlCopy code
    git merge --squash <branch-name>
    

    使用 --squash 选项将要合并的提交压缩成一个单独的提交,而不是直接合并提交历史。这个方法通常用于创建清晰的、整洁的提交历史。

  4. 合并冲突的解决: 在执行合并操作时,如果遇到冲突,Git 会提示你手动解决冲突。解决完冲突后,需要执行 git add 将解决后的文件标记为已解决,然后执行 git commit 完成合并提交。

  5. 合并特定提交

    sqlCopy code
    git merge <commit-id>
    

    你也可以合并特定的提交,而不是合并整个分支。这个方法通常用于处理特定的提交或补丁。

git_rebase_122">git rebase

git rebase 命令用于重新设置分支的基础,常用于将一条分支的修改应用到另一条分支上,或者重排提交历史。以下是一些 git rebase 命令的常用方法:

  1. 将当前分支的修改应用到目标分支上

    phpCopy code
    git rebase <target-branch>
    

    这个命令将当前分支的提交应用到 <target-branch> 分支上,并将当前分支的基础设置为 <target-branch> 分支的最新提交。这种方法通常用于将一个分支的修改应用到另一个分支上,并保持提交历史的线性。

  2. 交互式重新设置提交历史

    cssCopy code
    git rebase -i <commit-id>
    

    使用 -i 选项可以进入交互式 rebase 模式,允许你对提交历史进行交互式的重新设置。在交互式模式中,你可以合并、编辑、删除提交,甚至重新排列提交顺序。

  3. 将当前分支的修改应用到目标分支上并保留合并提交

    cssCopy code
    git rebase --preserve-merges <target-branch>
    

    使用 --preserve-merges 选项可以保留分支合并的信息,即保留合并提交。这在需要保留分支合并信息的情况下非常有用。

  4. 中止 rebase 操作

    cCopy code
    git rebase --abort
    

    如果在 rebase 过程中出现问题,你可以使用 --abort 选项中止 rebase 操作,并恢复到 rebase 开始之前的状态。

  5. 继续 rebase 操作

    kotlinCopy code
    git rebase --continue
    

    如果在解决冲突后需要继续 rebase 操作,你可以使用 --continue 选项继续进行 rebase。

git_pull_171">git pull

git pull 命令用于从远程仓库拉取更新,并将其合并到本地分支。以下是一些常用的 git pull 方法:

  1. 从远程仓库拉取更新到当前分支

    Copy code
    git pull
    

    这个命令会从与当前分支关联的远程仓库中拉取更新,并将其合并到当前分支。

  2. 指定远程仓库和分支

    phpCopy code
    git pull <remote-name> <branch-name>
    

    这个命令会从指定的 <remote-name> 远程仓库的 <branch-name> 分支中拉取更新,并将其合并到当前分支。

  3. 拉取更新并重新应用本地修改

    cssCopy code
    git pull --rebase
    

    使用 --rebase 选项可以在拉取更新后,重新应用本地提交而不是直接进行合并。这有助于保持提交历史的线性。

  4. 拉取更新但不自动合并

    cssCopy code
    git pull --no-commit
    

    使用 --no-commit 选项可以在拉取更新后,不进行自动合并,而是保留更新的修改以便进行进一步处理。

  5. 拉取更新并强制合并

    cssCopy code
    git pull --force
    

    使用 --force 选项可以在拉取更新后,强制进行合并。这在需要覆盖本地修改的情况下可能会有用,但需要小心使用以避免丢失本地修改。

git_checkout_220">git checkout

git checkout 是 Git 中一个非常常用的命令,用于切换分支、恢复文件、创建新分支等操作。以下是一些常见的用法:

  1. 切换分支:最常见的用法就是切换到已存在的分支。

    bashCopy code
    git checkout branch_name
    
  2. 创建并切换到新分支:如果分支不存在,可以用 git checkout -b 创建并立即切换到新分支。

    bashCopy code
    git checkout -b new_branch_name
    
  3. 恢复文件:将工作区中的文件恢复到最近一次提交的状态。

    bashCopy code
    git checkout -- file_name
    
  4. 切换到某个特定的提交:可以使用提交的哈希值或标签名进行切换。

    bashCopy codegit checkout commit_hash
    git checkout tag_name
    
  5. 切换到上一个分支:如果需要在两个分支之间频繁切换,可以使用 - 标记来返回上一个分支。

    bashCopy code
    git checkout -
    

http://www.ppmy.cn/devtools/8115.html

相关文章

论文解读:(CoCoOP)Conditional Prompt Learning for Vision-Language Models

文章汇总 存在的问题 CoOp的一个关键问题:学习到的上下文不能推广到同一数据集中更广泛的未见类&#xff0c;这表明CoOp过拟合了训练期间观察到的基本类。 动机 为了解决弱泛化问题&#xff0c;我们引入了一个新的概念:条件提示学习。关键思想是使提示取决于每个输入实例(图…

数据结构––kmp算法(串)

kmp算法作为串的一个重要内容&#xff0c;必然有一定的难度&#xff0c;而在看到各类教辅书里的概念与解释后&#xff0c;其晦涩难懂的内容直接劝退一部分人&#xff0c;现在&#xff0c;让我们来看看吧 KMP解决的问题类型 KMP算法的作用就是在一个已知的字符串中查找子串的位…

Mysql学习2

目录 一.数据库&#xff1a; 1.创建数据库&#xff1a; 2.查看数据库&#xff1a; 3.备份恢复数据库&#xff1a; 二.表 1.创建表指令&#xff1a; 2.MySQL常用数据类型&#xff1a; 3.删除与修改表&#xff08;重点&#xff09;&#xff1a; 4.数据库CRUD语句&#xf…

书生·浦语大模型全链路开源体系-第4课

书生浦语大模型全链路开源体系-第4课 书生浦语大模型全链路开源体系-第4课相关资源XTuner 微调 LLMXTuner 微调小助手认知环境安装前期准备启动微调模型格式转换模型合并微调结果验证 将认知助手上传至OpenXLab将认知助手应用部署到OpenXLab使用XTuner微调多模态LLM前期准备启动…

【k8s】(五)kubernetes1.29.4离线部署之-初始化第一个控制平面

备注&#xff1a; 完整版请参阅 【k8s】Kubernetes 1.29.4离线安装部署&#xff08;总&#xff09; 执行命令初始化第一个控制平面节点 在上节的安装过程中&#xff0c;实际以及包含了初始化第一个控制平面的脚本&#xff0c;由于其重要性&#xff0c;这里单独提出来详细说明。…

[ LeetCode ] 题刷刷(Python)-第35题:搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 nums 为 无重复元素 的 升序 排列数组 请必须使用时间复杂度为 O(log n) 的算法。 示例 示例 1: 输入: …

TensorFlow 1.x的学习

.为什么还有很多人都选择使用TensorFlow 1.x 兼容性问题: TensorFlow 1.x在一些旧项目中已经得到了广泛应用&#xff0c;这些项目可能依赖于1.x版本的特定API或行为。升级到2.x可能需要大量的代码修改和测试工作&#xff0c;对于一些已经稳定运行的项目&#xff0c;维护者可能…

蓝桥杯 BASIC-16 基础练习 分解质因数

蓝桥杯 BASIC-16 基础练习 分解质因数 问题描述 求出区间[a,b]中所有整数的质因数分解。 输入格式 输入两个整数a&#xff0c;b。 输出格式 每行输出一个数的分解&#xff0c;形如ka1*a2*a3…(a1<a2<a3…&#xff0c;k也是从小到大的)(具体可看样例) 样例输入 3 10 样例输…