Git

学习14个Git命令,因为你将会在99%的时间里使用它们

必须了解的14个Git命令整理

1. git init

初始化一个新的Git仓库。

这将在当前目录中创建一个名为".git"的子目录,Git会将所有仓库的元数据存储在其中。

2. git clone

克隆一个已存在的仓库。

这会创建一个本地仓库的副本,包括其所有的历史记录和分支。


git clone <仓库链接>
3. git add

将修改内容添加到下一次提交中。

这将把指定的文件添加到暂存区,这些文件将包含在下一次提交中。


git add file1.txt file2.txt
4. git commit

创建一个新的提交。

这将记录暂存区的修改以及自上次提交以来所做的任何其他修改,并附带一条描述这些修改的提交信息。


git commit -m "添加新功能"
5. git push

将提交推送到远程仓库。

这将把本地的提交发送到指定的远程仓库,更新远程分支以包含新的提交。


git push origin main
6. git pull

从远程仓库获取并合并修改。

这会从指定的远程仓库中获取最新的提交,并将其合并到当前分支中。


git pull origin main
8. git branch

列出、创建或删除分支。

这个命令可以用来列出仓库中可用的分支,创建新的分支或删除现有的分支。


git branch new-branch
9. git checkout

切换到不同的分支。

这个命令允许你切换到仓库中的不同分支,并将其作为当前工作分支。


git checkout main
10. git merge

将一个分支合并到另一个分支。

这个命令将一个分支的修改合并到另一个分支中,创建一个反映合并变化的新提交。


git merge new-branch
11. git status

显示仓库的状态。

这个命令会显示当前分支、任何暂存或未暂存的修改以及任何未跟踪的文件。


git status
12. git rebase

将一个分支的修改合并到另一个分支。

假设你在"XYZ"分支上进行了一些修改,你希望将这些修改合并到"main"分支中。你可以使用git rebase命令将你的修改重新应用到main分支之上。

13. git stash

临时保存还未准备提交的修改。

如果你的修改还没有准备好提交,但你想要切换到另一个分支继续工作,你可以临时保存你的修改以便以后使用,并在不丢失进度的情况下切换分支。

14. git revert

假设你在之前的提交中犯了一个错误,需要撤销它。你可以使用git revert创建一个新的提交,该提交会撤销之前提交引入的修改。


git revert ..

学习这些14个Git命令,它们是你在日常开发中使用频率最高的命令。

为你解释每个命令的作用

  • 首先是git init,它用于初始化一个新的Git仓库。执行这个命令后,Git会在当前目录下创建一个名为".git"的子目录,其中存储着仓库的所有元数据。
  • 接下来是git clone,用于克隆一个已存在的仓库。执行这个命令后,你将在本地创建该仓库的一个副本,包括所有的历史记录和分支。
  • git add命令用于将修改的文件添加到下一次提交的暂存区。你可以指定要添加的文件git add命令用于将修改的文件添加到下一次提交的暂存区。你可以指定要添加的文件,例如git add file1.txt file2.txt。
  • git commit命令用于创建一个新的提交。它会记录暂存区的修改以及自上次提交以来的其他修改,并附带一条描述这些修改的提交信息,例如git commit -m "添加新功能"。
  • git push命令用于将提交推送到远程仓库。它会将本地的提交发送到指定的远程仓库,更新远程分支以包含新的提交,例如git push origin main。
  • git pull命令用于从远程仓库获取并合并修改。它会从指定的远程仓库获取最新的提交,并将其合并到当前分支中,例如git pull origin main。
  • git branch命令用于列出、创建或删除分支。你可以使用这个命令列出仓库中可用的分支、创建新的分支或删除现有的分支,例如git branch new-branch。
  • git checkout命令用于切换到不同的分支。你可以使用这个命令切换到仓库中的不同分支,并将其作为当前工作分支,例如git checkout main。
  • git merge命令用于将一个分支合并到另一个分支。它将一个分支的修改合并到另一个分支中,创建一个新的提交反映合并的变化,例如git merge new-branch。
  • git status命令用于显示仓库的状态。它会显示当前分支、任何暂存或未暂存的修改以及任何未跟踪的文件,例如git status。
  • git rebase命令用于将一个分支的修改合并到另一个分支。假设你在"XYZ"分支上进行了一些修改,你可以使用git rebase命令将这些修改重新应用到"main"分支之上。
  • git stash命令用于临时保存还未准备提交的修改。如果你的修改还没有准备好提交,但你想要切换到另一个分支继续工作,你可以使用git stash命令将修改暂存起来,以便以后使用。
  • git revert命令用于撤销之前的提交。如果你在之前的提交中犯了一个错误,你可以使用git revert命令创建一个新的提交,撤销之前提交引入的修改。

这些命令是Git中最常用的命令,掌握它们将大大提升你的开发效率。希望这个简要的指南对你有所帮助!

了解更多使用命令行技巧

我日常会通过shell脚本把需要用到的git命令进行封装整合成自己习惯的分析场景,比如我要进行git仓库代码提交分析,我会写这样一个脚本。


#!/usr/bin/env bash
################################
# desc: git_analysis.sh
# author: vxbus
# date: 2023-11-25
################################
#!/bin/bash

# 统计提交数量
commit_count=$(git rev-list --count HEAD)
echo "总提交数量: $commit_count"

# 列出所有分支
branches=$(git branch --all)
echo "分支列表:"
echo "$branches"

# 遍历每个分支并显示最新提交

while IFS= read -r brach; do
        branch_name=$(echo "$branch" | sed 's/^\*//') # 去掉分支前的 '*' 符号
        latest_commit=$(git --no--pager log -n 1 --pretty=format:"%h - %s" $branch_name 2>/dev/null)
        if [ -n "$latest_commit" ]; then
                echo "分支 $branch_name 的最新提交: $latest_commit"
        fi
done <<< "$branches"

将上述代码保存为一个Shell脚本文件(例如git_analysis.sh),并确保该文件具有可执行权限。然后在命令行中运行该脚本,它将显示总提交数量、分支列表和每个分支的最新提交。