你好,未来的 Git 大神!你是不是也曾被一堆 Git 命令搞得晕头转向?别担心,今天咱们就用最接地气的方式,聊聊 Git 世界里出场率最高的四个“明星”命令:add, commit, push, 和 pull。包你一看就懂,一学就会!
一、git add:把你的代码“装上车”
想象一下,你正在搬家,一堆零零散散的东西需要打包。git add 就好比是你把要搬走的东西(你修改过的代码)放进箱子(暂存区)里的过程。 这个动作告诉 Git:“嘿,这些文件是我要提交的,你先帮我看着。”
代码示例
# 添加一个特定的文件
git add README.md
# 添加整个目录下的所有变更
git add docs/
# 添加当前目录下所有的变更(新文件、修改的文件、删除的文件)
git add .
解析
-
git add <文件名>:这是最精准的添加方式,明确告诉 Git 你要追踪哪个文件的变化。 -
git add <目录名>:把指定目录下的所有改动都加到暂存区。 -
git add .:这是一个“懒人”操作,但非常好用。它会把当前目录下所有文件的改动(增、删、改)都加到暂存区。
案例
假设你正在开发一个新功能,修改了 header.html 和 style.css 两个文件。同时,你还为了调试,在 test.js 里加了一行 console.log。现在你只想提交 header.html 和 style.css 这两个和新功能相关的文件,test.js 的改动暂时不想提交。
这时候,你就可以这样做:
git add header.html style.css
这样一来,只有 header.html 和 style.css 的修改被“打包”进了暂存区,而 test.js 的改动则被留在了你的工作区,不会影响你下一次的提交。
二、git commit:给你的“包裹”贴上标签
东西装好箱了,总得写个标签,说明里面装的是什么吧?git commit 就是这个贴标签的过程。 它会把暂存区里的所有内容,生成一个版本快照,并永久保存在你的本地仓库历史里。
代码示例
# 提交并附上一段简短的说明
git commit -m "修复了首页的显示bug"
# 提交并打开默认编辑器,编写更详细的说明
git commit
解析
-
git commit -m "你的提交信息":这是最常用的提交方式。-m参数后面跟着的字符串就是你的提交说明,建议写得清晰明了。 好的提交信息应该简短且具有描述性。 - 直接使用
git commit:如果你觉得一句话说不清楚,可以直接运行这个命令。Git 会打开你配置的默认文本编辑器(比如 Vim),让你写下更详细的提交信息。
案例
继续上面的例子,你已经用 git add 把 header.html 和 style.css 的修改添加到了暂存区。现在,你要正式提交这次的修改。
git commit -m "新增网站导航栏功能"
执行完这个命令后,你的本地仓库里就有了一个新的“版本记录”。这个记录包含了 header.html 和 style.css 在这个时间点的所有内容,并且附带了 “新增网站导航栏功能” 这条清晰的说明。以后你想知道导航栏是什么时候加的,翻翻提交历史就一目了然了。
三、git push:把你的成果“发快递”到远方
你在本地打包、贴好标签的“包裹”,总得寄出去给小伙伴们分享吧?git push 就是这个“发快递”的动作,它把你本地仓库的提交记录上传到远程仓库(比如 GitHub 或 GitLab)。 这样,团队里的其他人就能看到你的代码变更了。
代码示例
# 将当前分支的提交推送到名为 origin 的远程仓库
git push origin main
# 如果本地分支和远程分支已关联,可以简化为
git push
解析
-
git push <远程仓库名> <分支名>:这是一个完整的推送命令。origin通常是 Git 默认的远程仓库名字,main是主分支的名字。 - 首次推送一个新创建的本地分支时,你可能需要用到
git push -u origin <分支名>或者git push --set-upstream origin <分支名>。 这个-u参数会把你的本地分支和远程分支关联起来,之后你在这个分支上就可以直接使用git push了。
案例
你本地的 feature-login 分支已经开发完毕,并且提交了好几个 commit。现在,是时候让其他同事看看你的成果,或者把代码部署到测试服务器了。
git push origin feature-login
这条命令会把 feature-login 分支上所有本地的、但远程仓库还没有的提交,一次性全部推送到 origin 这个远程仓库。你的同事们只需要切换到这个分支,就能看到你最新的代码了。
四、git pull:从远方“收快递”并更新
有来有往,你把代码推送上去,也需要随时获取别人推送的最新代码。git pull 就是帮你“收快递”的。 它会从远程仓库拉取最新的代码,并自动尝试合并到你当前所在的本地分支。
简单来说,git pull = git fetch (拉取最新代码) + git merge (合并到本地)。
代码示例
# 从名为 origin 的远程仓库拉取 main 分支的最新代码,并合并到当前分支
git pull origin main
# 如果本地分支和远程分支已关联,可以简化为
git pull
解析
-
git pull <远程仓库名> <分支名>:从指定的远程仓库和分支拉取更新。 -
git pullvsgit fetch:这是一个常见的问题。git fetch只是把远程的最新代码下载到你的本地,但不会对你当前的工作代码做任何修改,更加安全。 而git pull会在下载后立刻尝试合并。 对于新手来说,git pull更直接方便;但如果你想在合并前先看看别人都改了啥,可以先用git fetch。
案例
你早上来到公司,准备开始一天的工作。第一件事,就是要确保你的本地代码是和团队最新的代码保持同步的。假设你正在 main 分支上。
git pull origin main
Git 就会去检查远程的 main 分支有没有新的提交。如果有,它会把这些新的提交下载下来,并且合并到你本地的 main 分支。这样,你就站在了和团队其他人一样的“起跑线”上,可以愉快地开始写新代码了。
好了,这就是 Git 四大基本命令的全部内容啦!是不是很简单?
-
add是打包。 -
commit是贴标签。 -
push是发快递。 -
pull是收快递。
记住这个形象的比喻,多加练习,你很快就能从 Git 小白变身为团队里的代码管理小能手!