Git基础指令4.0

创建与克隆

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

基本快照制作

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

分支与合并

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

提交历史

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

撤销更改

  • git restore : 恢复工作目录中的文件到最后一次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 : 添加一个新的远程仓库别名。

标签

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

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

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

单个提交的Cherry-Pick

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

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

    git checkout main
    
  2. 执行cherry-pick命令:

    git cherry-pick abc1234
    

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

多个连续提交的Cherry-Pick

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

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

  1. 切换到目标分支:

    git checkout main
    
  2. 使用范围进行cherry-pick

    git cherry-pick abc1234^..def5678
    

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

多个非连续提交的Cherry-Pick

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

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

  1. 切换到目标分支:

    git checkout main
    
  2. 逐个或一起执行cherry-pick指令:

    git cherry-pick abc1234 def5678 ghi9012
    

解决冲突

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

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

  1. 打开冲突的文件,找到冲突部分(通常由<<<<<<<=======>>>>>>>标记)。
  2. 编辑文件来解决冲突,删除标记,并保留你想要的代码变更。
  3. 添加解决后的文件到暂存区:
    git add <resolved-file>
    

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

git cherry-pick --continue

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

git cherry-pick --abort

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

你可能感兴趣的:(Git,git)