在了解 git 基本用法之前,我们需要先清楚 git 中包含的四个区域和四个文件状态。
四个区域分别是:
- 工作区
- 暂存区
- 本地仓库
- 远端仓库
四个工作状态分别是:
- 未跟踪
- 未修改
- 被修改
- 被暂存
git 的基本用法可以理解为文件在这四个区域之间的移动,伴随着文件在四个工作状态之间的转移。
通常,学习 git 的用法是按照命令类别来区分的,本文则按照区域之前的关联来整理这些基本操作。对于命令所带不同参数而产生的延伸用法,可查看帮助手册或在特定场景下记忆。
工作区与暂存区
工作区 ----> 暂存区:新增/删除/改名
# 将指定文件放入暂存区
$ git add [file_name]
# 将所有修改或新增的文件放入暂存区
$ git add .
# 停止追踪指定文件但是不删除文件
$ git rm --cached [file_name]
# 删除工作区文件,停止追踪指定文件
$ git rm [file_name]
# 改名文件,并同步到暂存区
$ git mv [old_name] [new_name]
暂存区 ----> 工作区:舍弃文件
# 重置暂存区指定文件,与上次 commit 保持一致,但工作区修改内容不丢失
$ git reset [file_name]
# 重置暂存区和工作区,与上次 commit 保持一致,工作区修改内容全部舍弃,但是从未追踪的文件不会被重置
$ git reset --hard
暂存区与本地仓库
暂存区 ----> 本地仓库
# 暂存区的所有文件提交到本地仓库
$ git commit -m [message]
# 暂存区指定文件提交到本地仓库
$ git commit [file1] -m [message]
# 补充上一次的commit
$ git commit --amend -m [message]
工作区与本地仓库
工作区 ----> 本地仓库
# 将工作区中自上次 commit 之后的变化(不包括之前未跟踪过的文件),直接提交到本地仓库
$ git commit -a
本地仓库 ----> 工作区
# 重置当前分支到指定commit,文件退回工作区,修改不丢失
$ git reset [commit]
# 重置当前分支到指定的commit,文件修改舍弃,暂存区和工作区与指定commit保持一致
$ git reset --hard [commit]
本地仓库与远端仓库
本地仓库 ----> 远端仓库
# 推送本地指定分支到远端仓库
$ git push [remote] [branch]
远端仓库 ----> 本地仓库
# 下载远端仓库到本地
$ git fetch [remote]
# 下载远端仓库到本地,并与本地仓库执行 merge 操作
$ git pull [remote] [branch]
# 下载远端仓库到本地,并与本地仓库执行 rebase 操作
$ git pull --rebase [remote] [branch]
git 的基本操作除了本文介绍的在四个区域之间的移动外,
还包括 git 信息查询、非常重要的 git 分支使用等,会在后续文章中一点点整理说明。
(完)
本文为原创文章,转载请告知作者,未经授权请勿转载。
欢迎关注我的微信公众号、知乎:多面手程序员
如果您觉得这篇文章还不错,随手点赞,手有余香~ : )