Git基础指令4.0

创建与克隆

  • git init: 在当前目录下创建一个新的Git仓库。
  • git clone <url>: 从远程仓库地址克隆一个项目和它的整个版本历史。

基本快照制作

  • git status: 查看哪些文件处于修改状态(已修改但未提交),哪些已暂存待提交。
  • git add <filename>git add .: 将文件改动添加到暂存区,.代表添加所有更改的文件。
  • git commit -m "commit message": 将暂存区域的文件提交到仓库,并附上一条提交信息。
  • git diff: 查看未暂存的文件更新了哪些部分。
  • git diff --stagedgit diff --cached: 查看已暂存的将要包含在下次提交里的内容。

分支与合并

  • git branch: 列出本地所有分支,当前分支前会有一个*标记。
  • git checkout <branch-name>: 切换到某个分支。
  • git checkout -b <new-branch>: 创建并切换到一个新分支。
  • git merge <branch>: 合并指定分支到当前分支。
  • git branch -d <branch-name>: 删除本地分支。

提交历史

  • git log: 显示当前分支的版本历史。
  • git log --follow [file]: 显示某个文件的修改历史。
  • git blame [file]: 以列表形式查看某个文件的详细修改历史。

撤销更改

  • git restore <file>: 恢复工作目录中的文件到最后一次git commit或git add时的状态。
  • git reset --hard HEAD: 重置到最后一次提交的状态,舍弃所有工作目录中的更改。
  • git commit --amend: 修改最后一次提交。

远程操作

  • git fetch [remote-name]: 从远程仓库获取数据到本地,不自动合并。
  • git pull [remote-name] [branch-name]: 从远程仓库拉取数据并自动尝试合并到当前分支。
  • git push [remote-name] [branch-name]: 将本地分支的更新推送到远程仓库。
  • git remote -v: 查看远程仓库地址的详细信息。
  • git remote add <remote-name> <url>: 添加一个新的远程仓库别名。

标签

  • git tag: 列出所有tag。
  • git tag <tagname>: 创建一个新的tag。
  • git push [remote-name] [tagname]: 推送一个tag到远程仓库。

Git的cherry-pick命令允许你选择一个或多个在其他分支上的提交,并将它们复制到你当前的工作分支上。这是一种将特定提交从一个分支转移到另一个分支的方法,而不是合并整个分支。

以下是cherry-pick命令的一些基本使用场景和步骤:

单个提交的Cherry-Pick

假设有一个提交在分支feature上,其提交哈希为abc1234,你想要将这次提交应用到当前所在的main分支上。

  1. 首先切换到目标分支:

    bash 复制代码
    git checkout main
  2. 执行cherry-pick命令:

    bash 复制代码
    git cherry-pick abc1234

如果cherry-pick操作成功,那么分支main现在会包含一个新的提交,内容与feature分支上的abc1234提交相同。

多个连续提交的Cherry-Pick

如果你想要复制一系列连续的提交,可以指定这些提交的范围。

假设你要将feature分支上从abc1234def5678(包括这两个提交)之间的所有连续提交复制到main分支上。

  1. 切换到目标分支:

    bash 复制代码
    git checkout main
  2. 使用范围进行cherry-pick

    bash 复制代码
    git cherry-pick abc1234^..def5678

注意:符号^表示包括abc1234在内的提交。

多个非连续提交的Cherry-Pick

如果你想要复制几个非连续的提交,可以将每个提交的哈希值依次列出。

假设你想要复制feature分支上的三个不连续的提交abc1234def5678ghi9012main分支上。

  1. 切换到目标分支:

    bash 复制代码
    git checkout main
  2. 逐个或一起执行cherry-pick指令:

    bash 复制代码
    git cherry-pick abc1234 def5678 ghi9012

解决冲突

有时候,在执行cherry-pick的过程中可能会发生冲突,因为当前分支上的文件状态可能与要复制的提交中的改动发生了冲突。

当冲突发生时,git会停止cherry-pick操作,等待你手动解决冲突。这时你可以:

  1. 打开冲突的文件,找到冲突部分(通常由<<<<<<<=======>>>>>>>标记)。

  2. 编辑文件来解决冲突,删除标记,并保留你想要的代码变更。

  3. 添加解决后的文件到暂存区:

    bash 复制代码
    git add <resolved-file>

完成以上步骤后,你可以用下面的命令继续cherry-pick过程:

bash 复制代码
git cherry-pick --continue

如果你决定不进行cherry-pick,可以用以下命令取消操作:

bash 复制代码
git cherry-pick --abort

掌握cherry-pick能够让你灵活地选择特定的提交进行工作,而无需合并整个分支。

相关推荐
源码12153 小时前
git命令提交项目
git
周星星_少年只有一个面11 小时前
git入门环境搭建
git
五味香11 小时前
Linux学习,ip 命令
linux·服务器·c语言·开发语言·git·学习·tcp/ip
aPurpleBerry12 小时前
【问题解决】Github上手动Delete file之后, git remote add+git push出错
git·github
M_emory_14 小时前
解决 git clone 出现:Failed to connect to 127.0.0.1 port 1080: Connection refused 错误
前端·vue.js·git
Make_magic14 小时前
Git学习教程(更新中)
大数据·人工智能·git·elasticsearch·计算机视觉
不穿铠甲的穿山甲14 小时前
git-.git目录解析
git
唔知小罗1 天前
git config是做什么的?
git
不是鱼1 天前
新人程序猿必备的git技能(超实用基础版)
git·github
Exclusive_Cat1 天前
Git的使用(基础语句)
git