在开发过程中,Git 作为分布式版本控制系统,是开发者日常工作中不可或缺的工具,通过命令行操作 Git,可以高效地管理代码版本、协作开发以及追踪项目变更,以下将详细介绍常用的 Git 命令行操作,从基础配置到高级分支管理,帮助开发者全面掌握 Git 的使用方法。

在使用 Git 之前,需要进行用户配置,包括用户名和邮箱,这些信息会用于提交记录的身份标识,配置命令如下:
git config --global user.name "Your Name" git config --global user.email "your.email@example.com"
--global 参数表示全局配置,该配置会在所有 Git 仓库中生效,如果需要为特定仓库配置,可以去掉 --global 参数,在仓库目录下执行配置命令。
接下来是 Git 仓库的初始化与克隆,创建一个新的本地仓库时,可以使用 git init 命令,该命令会在当前目录下创建一个 .git 文件夹,用于存储版本控制的相关信息,在项目目录 my-project 下执行:
cd my-project git init
如果需要从远程仓库克隆代码到本地,可以使用 git clone 命令,后面加上远程仓库的 URL。

git clone https://github.com/username/repository.git
执行后,Git 会在当前目录下创建一个名为 repository 的文件夹,并下载远程仓库的所有代码和提交历史。
在完成仓库初始化或克隆后,开发者通常会进行文件修改,然后需要将修改提交到仓库中,Git 的工作区状态包括未跟踪(untracked)、已修改(modified)和已暂存(staged),使用 git status 命令可以查看当前工作区的状态,
git status
该命令会列出哪些文件被修改、哪些文件未被跟踪等,对于需要提交的文件,首先需要使用 git add 命令将文件添加到暂存区,可以添加单个文件:
git add filename.txt
也可以添加所有修改和未跟踪的文件:

git add .
暂存区的文件可以通过 git commit 命令提交到本地仓库,提交时需要添加提交信息,描述本次修改的内容:
git commit -m "提交信息描述"
-m 参数用于直接在命令行后提交信息,如果不使用该参数,Git 会打开默认的文本编辑器,要求输入提交信息。
当需要从远程仓库获取最新代码时,可以使用 git pull 命令,该命令会合并远程分支的更新到当前本地分支。
git pull origin main
origin 是远程仓库名称,main 是分支名称,具体名称可能因仓库而异,如果只是需要获取远程仓库的更新而不合并,可以使用 git fetch 命令,
git fetch origin
获取更新后,可以使用 git log 命令查看提交历史记录,
git log --oneline
--oneline 参数会以简洁的格式显示提交历史,包括提交哈希和提交信息。
分支管理是 Git 的核心功能之一,通过分支可以实现功能开发、 bug 修复等并行工作,创建新分支可以使用 git branch 命令,
git branch feature-branch
该命令会创建一个名为 feature-branch 的新分支,但不会切换到该分支,切换分支可以使用 git checkout 命令,
git checkout feature-branch
在较新版本的 Git 中,也可以使用 git switch 命令切换分支,
git switch feature-branch
创建并切换到新分支的快捷命令是:
git checkout -b feature-branch
或
git switch -c feature-branch
合并分支时,首先切换到目标分支,然后使用 git merge 命令合并其他分支,将 feature-branch 分支合并到 main 分支:
git checkout main git merge feature-branch
合并完成后,如果不再需要 feature-branch 分支,可以使用 git branch -d 命令删除,
git branch -d feature-branch
对于未合并的分支,需要使用 -D 参数强制删除。
当需要将本地分支的提交推送到远程仓库时,可以使用 git push 命令,将 main 分支推送到 origin 远程仓库:
git push origin main
如果是第一次推送新分支到远程仓库,可以使用 -u 参数设置上游分支,后续推送时可以省略分支名称:
git push -u origin feature-branch
在开发过程中,可能会遇到需要撤销修改或回退版本的情况,对于已暂存但未提交的文件,可以使用 git reset 命令将文件从暂存区移除,
git reset filename.txt
对于已提交的修改,可以使用 git revert 命令创建一个新的提交来撤销之前的提交,
git revert <commit-hash>
<commit-hash> 是需要撤销的提交的哈希值,如果需要回退到某个特定的提交,并删除该提交之后的所有提交,可以使用 git reset --hard 命令,
git reset --hard <commit-hash>
该操作会永久删除提交历史,需谨慎使用。
以下是一些常用 Git 命令的总结表格:
| 命令 | 功能描述 | 示例 |
|---|---|---|
git config |
配置 Git 用户信息 | git config --global user.name "Name" |
git init |
初始化本地仓库 | git init |
git clone |
克隆远程仓库 | git clone <url> |
git status |
查看工作区状态 | git status |
git add |
添加文件到暂存区 | git add . |
git commit |
提交暂存区文件到本地仓库 | git commit -m "info" |
git pull |
拉取远程仓库更新 | git pull origin main |
git push |
推送本地分支到远程仓库 | git push origin main |
git branch |
查看或创建分支 | git branch branch-name |
git checkout/switch |
切换分支 | git checkout branch-name |
git merge |
合并分支 | git merge branch-name |
git log |
查看提交历史 | git log --oneline |
git reset |
重置暂存区或提交 | git reset HEAD |
git revert |
撤销提交 | git revert <hash> |
通过以上命令的组合使用,开发者可以高效地管理代码版本,实现团队协作开发,熟练掌握 Git 命令行操作,能够提升开发效率,更好地应对项目中的版本控制需求。
相关问答 FAQs
问题 1:如何解决 Git 合并冲突?
解答:当两个分支对同一文件的同一部分进行了不同的修改,合并时就会发生冲突,解决冲突的步骤如下:执行 git merge 命令后,Git 会标记出冲突的文件,
<<<<<<< HEAD======= 另一个分支的内容 >>>>>>> branch-name
开发者需要手动编辑冲突文件,保留需要的代码,删除 <<<<<<<、 和 >>>>>>> 标记,使用 git add 命令将解决冲突的文件添加到暂存区,最后执行 git commit 提交合并结果。
问题 2:如何撤销本地未推送到远程的提交?
解答:如果提交还未推送到远程仓库,可以使用 git reset 命令撤销,根据需求选择不同的重置方式:如果需要撤销提交但保留修改的文件(将文件放回工作区),可以使用 git reset --soft,
git reset --soft HEAD~1
该命令会撤销最近一次提交,但修改的文件仍然保留在工作区,可以重新提交或修改后提交,如果需要撤销提交并丢弃修改的文件(将文件恢复到未修改状态),可以使用 git reset --hard,
git reset --hard HEAD~1
注意:--hard 操作会永久丢失修改,需谨慎使用。
