以前基本上都是使用SVN进行版本控制,最近公司内计划将版本控制迁移到Git,并使用GitLab做为项目仓库html
本文主要结合Git与GitLab来进行基本配置和使用,而Git工具的语法规则不在本文讨论范围内,若有须要请自行查阅语法手册git
一、 Git工具
二、 Git安装
三、 Git生成SSH KEY
四、 GitLab设置SSH KEY
五、 初始化项目
六、 编写忽略控制的文件 .gitignore
七、 git 核心概念简析
7.1 、 工做区
7.2 、 版本库
7.3 、 暂存区
7.4 、 管理修改
八、 远程仓库
九、 项目添加到远程仓库
十、 项目推送到远程仓库
十一、 提交权限设置
附录: 一些资源github
这个按照安装指南一步一步操做就行了ssh
ssh-keygen -t rsa -f ~/.ssh/id_rsa_droi -C 'liuqing_hu@126.com'
工具
会在.ssh文件加下生成两个文件 id_rsa_droi 和 id_rsa_droi.pub,其中id_rsa_droi.pub文件就存放着咱们须要的SSH-KEYgitlab
设置路径 :Profle Settings > SSH Keyspost
当前咱们的项目都是使用SVN进行版本控制,而且几乎全部项目都是处在上线或维护状态,即不是一个空项目(固然一个新建的项目操做也是同样的)网站
第一步要作的就是初始化项目,进入项目目录后,执行命令git init
即可以对项目使用Git进行管理url
通常项目中有一些缓存或配置文件,咱们不想对他们进行管理,此时咱们能够将这些文件加入到.gitignore文件中
一、使用Git Bash工具建立.gitignore
执行命令touch .gitignore
二、.gitignore语法
gitignore语法
示例
# Windows: 这是一个注释,如下三行为忽略控制的文件 Thumbs.db ehthumbs.db Desktop.ini
工做区(Working Directory) 、 暂存区(Staging Area) 、 远程仓库或版本库(.git directory | Repostory)
请阅读《工做区和暂存区》
就是项目的文件目录(电脑里能看到的目录),全部修改和变动状态都是发生在工做区
请再次阅读《工做区和暂存区》
工做区有一个隐藏目录.git,这个就是Git的版本库。其中Git版本库里有个很重要的信息就是暂存区
请再次阅读《工做区和暂存区》
请再次阅读《工做区和暂存区》
了解完工做区和暂存区的基本概念后,基本上咱们就开始干活了,当工做区文件有修改时,咱们须要将这个修改添加到暂存区git add modify.file
,后一步就是将暂存区的文件提交到当前分支的Git版本库git commit -m "[modify] some change"
一切运行的很完美,咱们如今基本上可以使用Git来进行项目管理了,可是还差 最后一步就是将本地项目PUSH到远程仓库,这样别的小伙伴才可以clone和pull 咱们的项目
到目前为止,咱们全部的工做都是在本地机器上完成的,而咱们公司已经为咱们建立好了代码托管服务GitLab,因此如今咱们要作的就是将本地项目添加并PUSH到远程仓库GitLab。在开始以前,还记得咱们生成的SSH-KEY么?不要忘记在GitLab设置好。
语法git remote add <shortname> <url>
将添加一个新的远程 Git 仓库,同时指定一个你能够轻松引用的简写
拿TestGit项目举例(这是一个示例,请替换成本身的提交地址)
git remote add origin http://gitlab.test.com/huliuq...
将本地项目添加到远程仓库后,就能够把项目PUSH到远程仓库,这边其余小伙伴即可以访问项目更新
语法git push [remote-name] [branch-name]
拿TestGit项目举例
第一次推送使用 git push -u origin master
,以后可使用 git push origin master
通常状况下,咱们都是须要账号密码受权才可以想远程仓库PUSH更新的,我不是很喜欢配置全局的账号信息到Git配置里。这又带来一个问题,每次咱们提交更新的时候都须要输入账号或者密码,很麻烦。
有什么办法能够解决这个问题呢?就是须要用到凭证存储这个功能
进入到咱们工做的项目目录后,在Git Bash工具下输入git help -a | grep credential-
查找相关权限选项
通常会看到credential-store之类的选项。
接下来输入git config credential.helper store
便会把咱们PUSH的账号密码信息给存储到.git/config文件中
当咱们再次向远程仓库PUSH更新时,当前项目便不会在须要咱们录入账号或密码数据了
可使用git help credential-store
查看帮助信息
Documentation 这是一个语法大全
Git教程 史上最浅显易懂的Git教程
try git 一个在线练习Git语法的网站