其他分享
首页 > 其他分享> > Git

Git

作者:互联网

目录

原理

安装配置

安装

brew install git

配置文件

~/.gitconfig进行 git 相关的配置

[user]
    email = xxx
    name = xxx

ssh 配置

~/.ssh/config


Git 管理的目录结构

目录结构

.git
.gitignore
其他文件或目录

.git用来保存分支,提交的信息,日志等

.gitignore用来配置当前文件夹下哪些文件不需要管理的

文件状态

Untracked

Modified

Staged

committed

工作区

暂存区

git commit 将暂存区的内容提交到本地仓库

本地仓库

远程仓库

gitlab

分支

目的:

并行开发

远程分支的连线和本地分支的连线是一样的

创建分支

# 创建并切换到develop
git checkout -b develop
# 创建develop,不切换
git branchdevelop

查看分支

git branch -a
git branch -r

游离状态的HEAD,HEAD不在某个分支,而是在某个节点,例如通过git checkout hash值,将HEAD切换到了一个节点上。

在游离状态的HEAD上做提交很危险,可能会找不回来。可以建一个临时的分支

merge

在要作为主分支的分支上进行操作

git checkout master
# 将develop合并到master
git merge develop

merge会新增一个节点,表示merge的过程,并且这个节点会用虚线连接develop,表示包含develop上的东西

rebase

与merge相反,将当前分支的节点间移动到另一个分支的最后,然后再移动主分支,这样更加线性

git checkout develop
# 将develop的节点已经移动到了master
git rebase master
# 将master分支的指针移动到最后
git checkout master
# 因为develop就在master前,所以merge时只是移动HEAD
git merge develop

冲突

冲突如何产生

类似多线程对共享变量的操作

如何解决冲突

修改冲突代码

git add 冲突的文件

git commit

常用命令

git reset

git reset HEAD

git revert

git rm

git diff --cache

git remote -v

git commit --amend

git rebase -i

日志

git relog

Workflow

分支模型

方法 描述
master 最稳定的分支,只从其他分支合入,不直接做修改
develop 最新的分支,开发的主干,主要用来合并其他的分支(feature,fix)
feature/xxx 功能分支,从develop创建,合并到develop
release 用来发版的分支,只允许进行一些BUG修复,新功能不要直接合入。合并到master,打上tag
hotfix 生产环境发生BUG紧急修复的分支,从master(tag)/release中产生,合并到master(tag)/release

clone仓库到本地

push

push之前先git pull --rebase更新一下本地代码,没有冲突再push

或者git fetch,更新本地的origin/feat,然后合并到本地的feat再提交push

标签:HEAD,git,develop,merge,Git,master,分支
来源: https://www.cnblogs.com/sudopk/p/16332934.html