说明
本文介绍了入门最常用的几个命令,仅用于给新手扫盲。
进阶内容笔者仍未整理成文,建议直接查阅Git官方文档。
介绍顺序按工作流程,如下图所示:
另,下文出现的名词对应
- branch_name:分支名
- filename:文件名
- project_name: 项目名
- remote_name: 远程仓库名
流程介绍
1. 克隆仓库
接触项目仓库,clone到本地开发:
# 克隆远程仓库,默认生成一个同仓库名的文件夹
➜ git clone git@gitlab.com:wenjaron/project_name.git
➜ cd project_name
2. 分支新建与更新
通常,master等重要分支会由leader管理。普通开发者需要新建自己的分支完成特定功能的开发:
# 创建新分支,比如 git branch feature
➜ git branch branch_name
# 切换到已存在的另一分支,比如 git checkout feature
➜ git checkout branch_name
查看所有的分支:
# 不带参数的git branch会显示所有分支
➜ git branch
也可以创建的同时切换分支:
# 创建并切换分支
➜ git checkout -b branch_name
开发者早上到达公司时,都应该拉取一下代码,避免个人分支和最新版本差距过大:
# 拉取远程仓库,并合并至本地仓库
➜ git pull remote_name branch_name
3. 提交修改
暂存区、工作区、版本库等重要概念,要深刻理解请查阅官方文档。这里只介绍如何把修改一步一步推送到远程仓库。
# 提交修改到暂存区,比如 git add .
➜ git add filename
# 查看当前有变更的文件
➜ git status
# 如果添加了不想提交的文件,可撤销
# 回退暂存区文件至与上一次commit保持一致,但工作区不变
➜ git reset filename
# 将暂存区文件提交至版本库,比如 git commit -m "Feature: ignore chars after parentheses when updating instance names."
➜ git commit -m "message"
# 推送到远程仓库
➜ git push remote_name branch_name
同样地,开发者应养成及时提交的好习惯,避免代码丢失或者进度紊乱。
4. 分支合并
开发者推送各自修改之后,一般由leader对代码进行review,如果没有问题会合并到主分支或对应版本分支。
个人在本地也有类似场合,比如临时开了个tmp分支,测试了一个简单idea,用完合并到工作分支上,这时就需要进行分支合并:
# 比如将远程的feature分支合并到本地master分支: git merge origin/feature
➜ git merge --no-ff remote_name/branch_name
# 放弃合并
➜ git merge --abort
5. 分支清理
分支的使命完成后,可以及时清理掉:
# 删除本地分支,比如 git branch -d feature
➜ git branch -d branch_name
# 删除远程分支,比如 git push origin --delete feature
➜ git push remote_name --delete branch_name
总结
如文首的图,代码的基本开发迭代流程大概是上述步骤的循环往复。