git命令

说明

1
2
3
4
5
6
master分支:稳定的分支
develop分支:开发分支

lujinkai:开发人员分支
xiaoming:开发人员分支
...

master 分支是上线的代码,develop 是开发中的代码,lujinkai、xiaoming 等是开发人员分支,开发在自己的分支里面写代码,然后下班前提交、合并到 develop 分支,等项目开发、测试完,最后再合并到 master 分支,然后上线

常用命令

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
[root@kafka2 testproject]$git branch  # 查看本地分支
* master # 分支前标 * 表示当前处于的分支

[root@kafka2 testproject]$git branch -a # 查看所有分支
* master
remotes/origin/HEAD -> origin/master
remotes/origin/ludongsheng
remotes/origin/master

git status # 查看工作区的状态
git branch test # 创建test分支
git merge test # 将test分支合并到当前分支
git log # 查看操作日志
git reflog # 获取每次提交的ID,可以使用--hard根据提交的ID进行版本回退

vim .gitignore # 定义忽略文件,即不放在仓库的文件

git reset --hard HEAD^^ # git版本回滚, HEAD为当前版本,加一个^为上一个,^^为上上一个版本

git reset --hard 5ae4b06 # 回退到指定id的版本

git checkout -b develop # 创建并切换到一个新分支
git checkout develop # 切换分支

git clone -b 分支名 仓库地址 # clone指定分支的代码

流程

  1. 在 gitlab 创建个人分支 lujinkai

  2. 克隆 master 分支到本地

    1
    [root@dev ~]$git clone git@gitlab.ljk.local:testgroup/testproject.git
  3. 切换到自己分支

    1
    [root@dev ~]$git checkout lujinkai
  4. 将 develop 分支拉下来和个人分支合并

    1
    2
    3
    4
    [root@dev ~]$git pull origin develop

    # git pull <远程主机名> <远程分支名>:<本地分支名>
    # 如果与当前分支合并,则冒号后面的部分可以省略

    以上命令是把远程分支 develop 拉下来,然后合并到当前分支 lujinkai,或者可以拆分成以下步骤:

    1
    2
    3
    4
    git checkout develop   # 切换到分支develop
    git pull origin develop # 远程develop拉下来和本地develop合并
    git checkout lujinkai # 切换到分支lujinkai
    git merge develop --no-commit # 将本地分支develop和当前分支lujinkai合并
  5. 开发代码

  6. 下班了,需要提交代码,但是在提交之前最好再执行一遍上一步,因为在你写代码的过程中,develop 分支可能有其他人提交

    1
    [root@dev ~]$git pull origin develop
  7. 添加文件到本地缓存区

    1
    [root@dev ~]$git add .  # . 表示当前目录下的所有文件
  8. 提交内容到本地分支上

    1
    git commit -m "注释, 提交说明"
  9. 上传本地分支到远程分支

    1
    2
    3
    4
    git push

    # 默认提交到本地分支对应的远程分支,或者可以显式指定
    git push origin lujinkai

之后每天 3 - 9 步骤走一遍

清除 master 分支的 commit 记录

  1. 克隆仓库 (这时工作目录里是 master 分支最后一次提交的内容)
  2. 创建一个新的空的分支
  3. 添加工作目录里所有文件到新的分支并做一次提交
  4. 删除 master 分支
  5. 将新的分支更名为 master
  6. 强制更新到 github 仓库
1
2
3
4
5
6
7
git clone [URL] && cd [仓库名]           # 克隆git仓库,进入仓库
git checkout --orphan new_branch # 创建一个新的空的分支
git add -A # 添加工作目录里所有文件到新的分支
git commit -am 'v1' # 做一次提交
git branch -D master # 删除master分支
git branch -m master # 将新的分支更名为master
git push origin master --force # 强制更新到github仓库