学习14个Git命令,因为你将会在99%的时间里使用它们
必须了解的14个Git命令整理
初始化一个新的Git仓库。
这将在当前目录中创建一个名为".git"的子目录,Git会将所有仓库的元数据存储在其中。
克隆一个已存在的仓库。
这会创建一个本地仓库的副本,包括其所有的历史记录和分支。
git clone <仓库链接>
将修改内容添加到下一次提交中。
这将把指定的文件添加到暂存区,这些文件将包含在下一次提交中。
git add file1.txt file2.txt
创建一个新的提交。
这将记录暂存区的修改以及自上次提交以来所做的任何其他修改,并附带一条描述这些修改的提交信息。
git commit -m "添加新功能"
将提交推送到远程仓库。
这将把本地的提交发送到指定的远程仓库,更新远程分支以包含新的提交。
git push origin main
从远程仓库获取并合并修改。
这会从指定的远程仓库中获取最新的提交,并将其合并到当前分支中。
git pull origin main
列出、创建或删除分支。
这个命令可以用来列出仓库中可用的分支,创建新的分支或删除现有的分支。
git branch new-branch
切换到不同的分支。
这个命令允许你切换到仓库中的不同分支,并将其作为当前工作分支。
git checkout main
将一个分支合并到另一个分支。
这个命令将一个分支的修改合并到另一个分支中,创建一个反映合并变化的新提交。
git merge new-branch
显示仓库的状态。
这个命令会显示当前分支、任何暂存或未暂存的修改以及任何未跟踪的文件。
git status
将一个分支的修改合并到另一个分支。
假设你在"XYZ"分支上进行了一些修改,你希望将这些修改合并到"main"分支中。你可以使用git rebase命令将你的修改重新应用到main分支之上。
临时保存还未准备提交的修改。
如果你的修改还没有准备好提交,但你想要切换到另一个分支继续工作,你可以临时保存你的修改以便以后使用,并在不丢失进度的情况下切换分支。
假设你在之前的提交中犯了一个错误,需要撤销它。你可以使用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),并确保该文件具有可执行权限。然后在命令行中运行该脚本,它将显示总提交数量、分支列表和每个分支的最新提交。