Git

概述

Git 是一个免费的开源分布式版本控制系统,旨在快速高效地处理从小型到超大型项目的所有内容。

分支模型

master分支与线上生产环境同步,只pull不push;

develop分支与各位本地开发环境,线上开发环境同步,是主要使用的分支;

第一次使用Git?

你需要准备:

  • 了解Git的基本工作流程

  • 一个Gitee账号

  • 一点耐心

Step 1:安装Git

访问Git下载页面(Git - Downloading Package (git-scm.com)

选择合适的版本下载(如:64-bit Git for Windows Setup

一路默认选项+下一步就行

安装完毕后打开终端(Win+R,输入cmd,回车)输入:

1
git --version

检查是否正确安装

Step 2:加入EMGroup

先注册Gitee账号,再打开链接(邀请加入EMGroup

Step 3:clone到本地

在合适的文件夹下,打开Git Bash执行

1
git clone https://gitee.com/emgroup/platform.git

Step 5:切换分支

确保本地、服务器dev的代码与develop分支同步,服务器prod的代码与master分支同步

1
git switch develop

Step 5:手动移动文件(特别要包括隐藏文件夹.git

因为clone指令只允许在空目录执行。我们不修改MediaWiki核心代码,所以只需要使用仓库的代码文件覆盖本地对应的文件。

在本地修改了代码需要同步?

Step 1:拉取代码(重要)

为了我们的代码是最新的状态 和 提交时不会产生冲突,先执行pull操作,将远程仓库最新代码拉到本地来

1
git pull origin 

Step 2:将文件添加到暂存区

1
git add [file]  // [file]是占位符,需要完整文件名

Step 3:提交到本地仓库

1
git commit -m 'add [file]' 

Step 4:push到远程仓库中

1
git push origin develop

在开发环境测试完成,打算合并到master分支?

在Gitee网站上的仓库发起Pull Request,经过Code Review即可合并

使用规范

.gitignore文件

有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如LocalSettings.php,把它加入项目目录下的.gitignore就可以不上传它

附录

常用Git指令

随用随看,不用背

没有列出版本回退操作,希望我们用不上

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# 仓库
# 在当前目录新建一个Git代码库
$ git init
# 下载一个项目和它的整个代码历史
$ git clone [url]

# 配置
# 显示当前的Git配置
$ git config --list
# 设置提交代码时的用户信息
$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"

# 增加/删除文件
# 添加指定文件到暂存区
$ git add [file1] [file2] ...
# 添加指定目录到暂存区,包括子目录
$ git add [dir]
# 添加当前目录的所有文件到暂存区(不建议使用!)
$ git add .

# 代码提交
# 提交暂存区到仓库区
$ git commit -m [message]
# 代码没有任何新变化,只用来改写上一次commit的提交信息
$ git commit --amend -m [message]

# 分支
# 列出所有本地分支
$ git branch
# 列出所有远程分支
$ git branch -r
# 列出所有本地分支和远程分支
$ git branch -a
# 切换分支
$ git switch [branch]

# 标签
# 列出所有tag
$ git tag
# 新建一个tag在当前commit
$ git tag [tag]
# 新建一个tag在指定commit
$ git tag [tag] [commit]
# 查看tag信息
$ git show [tag]
# 提交指定tag
$ git push [remote] [tag]
# 提交所有tag
$ git push [remote] --tags

# 查看信息
# 显示有变更的文件
$ git status
# 显示今天你写了多少行代码
$ git diff --shortstat "@{0 day ago}"

# 远程同步
# 显示所有远程仓库
$ git remote -v
# 取回远程仓库的变化,并与本地分支合并
$ git pull [remote] [branch]
# 上传本地指定分支到远程仓库
$ git push [remote] [branch]

Reference

[1] Git 大全 - Gitee.com

[2] Git 工作流程 | 菜鸟教程 (runoob.com)

[3] Git 分支管理 | 菜鸟教程 (runoob.com)

[4] A successful Git branching model » nvie.com