天天看点

git版本控制管理

简介:Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目

工作流程图:

git版本控制管理

git的工作区:

工作区:就是你在电脑里能看到的目录(本地仓库、即项目目录)

暂存区:英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

版本库:工作区有一个隐藏目录.git,是Git的版本库。

一、git config命令

因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。注意

git config

命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址,用户名和邮箱都会存到用户主目录下的“.gitconfig”文件中

git config --global user.name "Lntower"
git config --global user.email "[email protected]"
           

二、初始化版本仓库

进去到你的项目目录下,右键点击运行Git Bash Here,该窗口下运行

git init

,指定当前目录为git本地仓库

git版本控制管理

三、提交文件

将要提交到仓库的文件使用

git add

命令可将该文件添加到缓存,执行

git commit

将缓存区内容添加到仓库中。

提交到缓存中:

git add

提交到版本仓库,-m参数表示提交的信息:

git commit -m "第一次提交"

查看状态:

git status

五一休假回来上班,已经记不清上次怎么修改的readme.txt,需要用git diff这个命令看看:

git diff readme.txt

四、版本回滚

查看提交历史:

git log --pretty=oneline、git reflog

退回到上一个版本:

git reset --head HEAD^

退回到某一个版本:

git reset --head 版本id

五、撤销修改

让这个文件回到最近一次git commit或git add时的状态:

git checkout -- readme.md

注意:git checkout – file命令中的–很重要,没有–,就变成了“切换到另一个分支”的命令

把暂存区的修改撤销掉重新放回工作区:

git reset HEAD readme.md

是删错了从版本库里误删的文件恢复到最新版本:

git checkout -- test.txt

六、远程仓库

创建SSH Key,里面有id_rsa和id_rsa.pub两个文件,id_rsa是密钥,id_rsa.pub是公钥,在远程仓库中用公钥就行

SSH Key:

ssh-keygen -t rsa -C "邮箱地址"

Linux:生成的.ssh文件,root用户在/root目录下,普通用户在/home

windows:生成的.ssh文件,在用户目录下

已有的本地仓库与远程仓库关联:

git remote add origin 远程仓库的ssh链接

提交远程仓库(master是分支名):

git push origin master

七、git clone克隆远程仓库

在某个文件夹下,执行

git clone 远程仓库地址

git版本控制管理

主要这里只能克隆主分支的远程仓库,如果想克隆其它分支的仓库要执行另外一条命令,

git checkout -b dev origin/dev
           

git checkout -b dev 表示创建dev分支,origin/dev的dev表示是远程仓库中的分支名

八、分支管理(有个,并且颜色是绿色的是当前分支))*

查看分支:

git branch

创建分支:

git branch 分支名

切换分支:

git checkout 分支名 或者 git switch 分支名

创建+切换分支:

git checkout -b 分支名

合并到某个分支到当前分支:

git merge 分支名

查看分支合并图:

git log --graph

删除分支:

git branch -d 分支名

九、Git分支管理及命名规范

git版本控制管理
分支 命名 说明
主分支 master 主分支,提供给用户使用的正式版本,都在这个主分支上发布
开发分支 dev 开发分支,永远是功能最新最全的分支
功能分支 feature-* 新功能分支,某个功能点正在开发阶段
修复分支 release-* 发布定期要上线的功能
发布版本 bug-* 修复线上代码的 bug

将 Dev 分支发布到 Master 分支的命令:

切换到 Master 分支:

git checkout master

对 Dev 分支进行合并:

git merge –no–ff dev

–no–ff参数是什么意思

。默认情况下,Git执行”快进式合并”(fast-farward merge),会直接将 Master 分支指向 Dev 分支。

使用–no–ff参数后,会执行正常合并,在 Master 分支上生成一个新节点。