名词解释
工作区(working directory)
目录中,除.git
目录的所有。
版本库(repository)
版本库,即
.git
目录。
版本库中有:
- 暂缓区(stage):暂存内容区
- 主分支(master):
git
自动创建的第一个分支; - HEAD指针:用于指向当前分支。
单人工作流程
-
在本地初始化工作区
git init
-
查看
git
配置,并新增两个配置项:用户名和用户电邮# 查看 git 配置 git config -l git config user.name "用户名" git config user.email "用户电邮"
-
版本管理
-
新建文件要添加到暂缓区
git add new_file
使用目录名亦可
-
查看当前版本跟踪状态
git status
-
提交暂缓区所有文件至分支
`git commit -m “make some comments”
-
-
修改了文件
-
查看文件更改改情况
git diff file_modified`
-
同样,被更改的文件也要
add
到暂缓区,再commit
提交更改。 -
查看文件的修改历史
git log file_name
-
查看整个工作区的提交历史
git log
简短查看:
git reflog
-
-
回退至上一个版本
git reset —hard HEAD^
一个尖号代表上一个版本。
-
回退到指定版本号的版本
git reset —hard *版本号*
-
多人开发流程
在远程服务器上创建版本库
- 创建工作区
git init --bare
工作区
多人开发流程
-
开发人员从远程服务器下载
repository
git clone *远程服务器共享版本地址*
-
开发阶段
-
新加入的用户,要设置好用户名和用户电邮;之后的暂存、提交、回退版本与单人开发一致。
-
将提交到本地的更改,推送到远程
repository
。git push
-
拉取
repository
最新版本git pull
-
git
分支(branch
)的使用
-
查看当前仓库的分支
git branch
如果仓库为空,则不会输出内容。
-
创建分支所
git branch new_branch_name
注意点:
在当前分支中创建了新分支,那么新分支将会继承当前分支的所有状态。
分支之间是独立的。
-
切换分支
git switch branch_name
查看分支,分支前有星号,就代表
HEAD
指向的分支。 -
查看远程分支
git branch -r #-r 代表remote
-
将新建分支提交到远程仓库
- 切换到要提交的新建分支
git push --set-up-stream origin *新建分支名称*
- 在新分支中
git push
即可
-
合并分支
git merge *待合并分支名称*
上面命令行,会将待合并分支名称合并到当前的分支。手动解决冲突,再合并即可。
-
删除分支
git branch -d *待删除分支名称*
**注意点:**以上指令只会删除本地仓库的分支,没有删除远程仓库的分支
git push origin —delete *待删除远程分支名称*
Gitflow工作流程
分支规划
Gitflow流程
-
准备阶段
添加标记:
git tag -a *标记名称* -m "相关注释"
查看标记:
git tag
tag是默认本地的,
push
也无法推送到远程仓库,要想将tag
推送至远程:git push origin *tag名称*
。 -
开发阶段
-
准备上线阶段
-
项目上线阶段
-
上线后阶段
-
迭代开发,就是上述的五步循环迭代工作。
开发过程注意点
-
不能将不能运行的代码提交到本地和远程仓库。
-
如果本地版本落后于远程仓库版本,应先拉取最新版本至本地
git pull
,然后才能推送至远程服务器。 -
如果更新内容与其他开发人员冲突(修改了同一文件的同一代码),此时需开发人员手动处理冲突,再提交至远程服务器。
-
开发技巧:
只要开发完了一个功能就要立即提交代码。企业开发中谁后提交谁负责解决冲突。