学习Git命令是掌握版本控制系统的关键,无论是个人项目开发还是团队协作,熟练使用Git都能显著提升效率,Git作为分布式版本控制工具,其命令丰富且功能强大,从基础的文件操作到复杂的分支管理,都需要系统学习和实践。

从最基础的命令开始。git init
用于在当前目录初始化一个Git仓库,这是所有Git操作的起点。git clone [url]
则用于克隆远程仓库到本地,例如git clone https://github.com/user/repo.git
会将整个项目下载到本地。git add [file]
或git add .
用于将文件添加到暂存区,git add .
会添加所有修改的文件,而git commit -m "message"
则是将暂存区的文件提交到本地仓库,并附带提交信息,这是记录代码变更的核心命令。git status
用于查看仓库状态,包括哪些文件被修改、哪些已暂存等,是日常操作中频繁使用的命令。
接下来是文件差异和查看命令。git diff [file]
用于查看工作区与暂存区的差异,不加文件名则查看所有文件差异;git diff --staged
则用于查看暂存区与最后一次提交的差异,帮助确认即将提交的内容是否正确。git log
用于查看提交历史,默认显示每次提交的哈希值、作者、日期和提交信息,git log --oneline
可以简化输出,便于快速浏览历史记录。git show [commit]
用于查看某次提交的详细修改内容,包括文件的具体变更。
分支管理是Git的核心功能之一。git branch
用于查看本地分支,-r
参数查看远程分支,-a
查看所有分支;git branch [branch-name]
用于创建新分支,git checkout [branch-name]
或git switch [branch-name]
用于切换分支(git switch
是较新版本推荐的命令)。git merge [branch]
用于将指定分支合并到当前分支,例如在开发完成后将功能分支合并到主分支。git branch -d [branch-name]
用于删除已合并的分支,-D
参数则强制删除未合并的分支。
远程仓库操作同样重要。git remote -v
用于查看远程仓库的别名和URL;git push [remote] [branch]
用于将本地分支推送到远程仓库,如git push origin main
;git pull [remote] [branch]
用于拉取远程仓库的更新并合并到当前分支,相当于git fetch
和git merge
的组合;git fetch [remote]
则仅拉取远程更新而不合并,适合先查看变更再决定是否合并。

以下是常用Git命令的总结表格:
命令分类 | 命令格式 | 功能说明 |
---|---|---|
基础操作 | git init |
初始化本地仓库 |
git clone [url] |
克隆远程仓库到本地 | |
git add [file/.] |
添加文件到暂存区 | |
git commit -m "message" |
提交暂存区文件到本地仓库 | |
git status |
查看仓库状态 | |
差异与历史 | git diff [file] |
查看工作区与暂存区差异 |
git diff --staged |
查看暂存区与最后一次提交差异 | |
git log [--oneline] |
查看提交历史 | |
git show [commit] |
查看某次提交的详细内容 | |
分支管理 | git branch [-r/-a] |
查看分支列表 |
git branch [branch-name] |
创建新分支 | |
git switch/checkout [branch] |
切换分支 | |
git merge [branch] |
合并指定分支到当前分支 | |
git branch -d/-D [branch] |
删除分支 | |
远程仓库操作 | git remote -v |
查看远程仓库信息 |
git push [remote] [branch] |
推送本地分支到远程 | |
git pull [remote] [branch] |
拉取远程更新并合并 | |
git fetch [remote] |
拉取远程更新 |
在实际使用中,可能会遇到各种问题,以下是两个常见FAQs及解答:
Q1: 如何撤销已经提交的代码?
A: 如果提交还未推送到远程仓库,可以使用git reset --hard [commit-hash]
回退到指定提交(会丢弃后续提交),或git revert [commit-hash]
创建一个新提交来撤销更改(保留历史记录),如果已推送到远程,需使用git push --force
强制推送(谨慎操作),或使用git revert
撤销后推送新提交。
Q2: 合并分支时出现冲突如何解决?
A: 合并冲突时,Git会在冲突文件中标记<<<<<
、>>>>>
和分隔符,需要手动编辑冲突文件,删除标记并保留需要的代码,然后执行git add [file]
标记冲突已解决,最后使用git commit
完成合并,若想取消合并,可运行git merge --abort
。
