分布式版本管理软件git的使用

git基础知识

git:分布式版本管理软件

版本管理:记录文件变更记录

分布式:可以有多个本地版本库,A电脑可以有一份、B电脑也可以有一份,各自独立,通过远程版本库合并协同统一

集中式:只有一个远程版本库(svn,cvs,多人协同需提交至远程版本库)

图片

查看配置信息

  • git config –global –list

配置提交的显示的用户名与邮箱

  • git config –global user.name “显示的用户名”

  • git config –global user.email “显示的邮箱”

git工作目录划分

图片

一般都有远程仓库,从远程仓库直接克隆即可

  • git clone address(远程仓库地址)

本地测试时,也可以初始化本地仓库

  • git init

添加文件至暂存区

  • git add (指定文件)

  • git add . (.代表所有变更文件)

查看git文件管理状态

  • git status

提交文件至本地版本库

  • git commit -m

比较文件变更记录

显示暂存区和工作区的差异

  • git diff

显示暂存区和上一次提交(commit)的差异

  • git diff –cache

显示两次提交之间的差异

  • git diff [first-branch]…[second-branch]

查看提交记录

  • git log

本地版本库回退至指定版本,具体参数看文档即可

  • git reset

查看回退历史记录

  • git reflog

放弃工作区修改

  • git checkout – file (与切换分支命令一致,多了–)

撤销暂存区修改,回退至工作区

  • git reset (命令与版本回退一致)

场景使用案例

图片

  • 1.放弃工作区文件修改 git checkout HEAD

  • 2.放弃暂存区修改 git reset HEAD ,回退至工作区,如需放弃,则参考1

  • 3.本地分支回退,git reset commit_id

远程仓库

图片

添加远程版本库关联

  • git remote add origtin(远程版本库别名) address(远程仓库地址)

推送本地版本库至远程版本库

  • git push -u origin master(本地主分支)

查看远程版本库信息

  • git remote -v

克隆远程版本库

  • git clone address(远程仓库地址)

分支管理

创建分支并切换分支

  • git checkout -b

创建分支

  • git branch dev

切换分支

  • git checkout dev

查看分支

  • git branch

删除分支

  • git branch -d

合并分支

  • git merge

当你要切换分支时且工作区已经改动了代码,可先把工作区代码暂时存储下来,保存在堆栈区

  • git stash

查看堆栈区暂存信息

  • git stash list

从堆栈区恢复

  • git stash pop

复制某个提交至当前分支

  • git cherry-pick commit_id

拉取远程代码

  • git pull address(git地址)

多人协作工作模式

  • 1.git push original

  • 2.若失败,git pull

  • 3.若冲突,解决冲突,git commit -m ‘备注信息’

  • 4.推送,git push

合并多个分支的提交信息

  • git rebase

标签管理

创建标签 git tag v1.0

删除标签 git tag -d v1.0

查看标签 git tag

标签明细

git show

忘记打标签,补标签

查看提交版本

  • git log –pretty=oneline –abbrev-commit

  • git tag v0.9 f52c633

还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:

  • git tag -a v0.1 -m “version 0.1 released” 1094adb

推送单个标签至远程仓库 git push origin

推送所有标签至远程仓库 git push origin – tags

其他

仓库管理站点:github gitgee

版本库软件:source tree

某些文件不添加至版本库,则把这些文件或目录添加至.gitignore文件中即可

Git Flow 介绍

Production 分支

也就是我们经常使用的Master分支,这个分支最近发布到生产环境的代码,最近发布的Release, 这个分支只能从其他分支合并,不能在这个分支直接修改。

Develop 分支

这个分支是我们是我们的主开发分支,包含所有要发布到下一个Release的代码,这个主要合并与其他分支,比如Feature分支

Master/Devlop 分支

所有在Master分支上的Commit应该打上Tag,一般情况下Master不存在Commit,Devlop分支基于Master分支创建

Feature 分支 feature1 feature2

Feature分支做完后,必须合并回Develop分支, 合并完分支后一般会删点这个Feature分支,毕竟保留下来意义也不大。

Release 分支

Release分支基于Develop分支创建,打完Release分支之后,我们可以在这个Release分支上测试,修改Bug等。同时,其它开发人员可以基于Develop分支新建Feature (记住:一旦打了Release分支之后不要从Develop分支上合并新的改动到Release分支)发布Release分支时,合并Release到Master和Develop, 同时在Master分支上打个Tag记住Release版本号,然后可以删除Release分支了。

Hotfix 分支

hotfix分支基于Master分支创建,开发完后需要合并回Master和Develop分支,同时在Master上打一个tag。

基本流程

图片

开发代码流程

  1. 拉取代码

  2. 主分支master 远程分支 master

  3. 基于master分支 创建 develop分支

  4. 基于develop分支 创建 feature-*分支

  5. feature-*分支开发完 合并至 develop分支

  6. 基于develop分支 创建 release分支

  7. release分支测试完 合并至 master分支/develop分支

  8. 推送master分支/develop分支

  9. 打标签,标签推送至远程

常用命令

帮助

  • git help 显示某个命令的详细使用文档

  • git -h 显示某个命令的使用说明

初始配置

  • git config –global user.name [] 配置用户名

  • git config –global user.email [] 配置邮箱

  • git config –global core.editor [] 配置编辑器

创建项目

  • git clone 克隆远程仓库

  • git init [project] 初始化本地项目

添加

  • git add 添加文件到暂存区

  • git commit -m 将暂存区的内容提交到 HEAD

  • git commit -am 将 add 和 commit 合并操作

  • git commit –amend -m 将 add 和 commit 合并操作且合并到上次 commit

显示

  • git status 显示状态

  • git diff [HEAD] 显示差异

  • git log 显示日志

  • git show 显示某个 commit 的详细内容

  • git blame 显示文件每行的 commit 信息

撤回

  • git restore 撤回工作区的修改

  • git restore –staged 将已提交到暂存区的修改撤回工作区

  • git reset [–mixed] 将当前版本撤回到某个 commit,保留工作区的修改

  • git reset –soft 将当前版本撤回到某个 commit, 保留工作区和暂存区的修改

  • git reset –hard 将当前版本撤回到某一个 commit,不保留工作区的修改

  • git rm 将文件从工作区和暂存区删除

  • git mv 将文件从工作区和暂存区移动或改名

分支

  • git branch [–list] 显示所有分支

  • git branch -a 显示远程分支

  • git branch 创建分支

  • git branch -d|-D 删除分支

  • git branch -m 重命名当前分支

  • git switch 切换到已有分支

  • git switch -c 创建并切换分支

  • git merge 将某个分支合并到当前分支

  • git tag 给当前分支打标签

  • git stash 将工作区的更改存储到脏工作目录中

  • git stash apply 将脏工作目录中的数据恢复到工作区(不会删除脏工作目录保存的数据)

  • git stash drop 将脏工作目录中的数据删除

  • git stash pop 将脏工作目录中的数据恢复工作区并删除脏数据

远程

  • git remote [-v] 显示远程库

  • git remote show 显示某个远程库的信息

  • git remote add 添加远程库链接

  • git remote rm 删除远程库链接

  • git remote rename 重命名远程库

  • git pull [] 拉取远程库到本地库

  • git push [-u ] 将本地库推送到远程库

  • git push origin –delete |git push origin :crazy-experiment 删除远程分支

  • git fetch 从远程库获取到本地库

checkout 该命令职责不明确,不建议使用;

  • git checkout 丢弃工作区的修改

  • git checkout -f 强制丢弃工作区和暂存区的修改

  • git checkout 切换分支

  • git checkout -b 创建并切换分支

参考文章
原文链接

本作品采用《CC 协议》,转载必须注明作者和本文链接
写的不好,就当是整理下思绪吧。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!