简介: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 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 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分支管理及命名规范
分支 | 命名 | 说明 |
---|---|---|
主分支 | 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 分支上生成一个新节点。