本次操作以将本地代码提交到gitlab为例,不过都大同小异,差别不大。
Git 作为分布式版本控制软件,存储文件的位置叫做仓库。仓库有远程仓库(互联网上一台服务器或局域网内的一台服务器)和本地仓库(本机的一个目录)两种。
- 系统中任意文件夹都可以作为本地仓库。本地仓库需要先初始化,生成git基本配置。
- 然后把本地的操作添加到缓存区。
- 把缓存区操作提交到本地库。
- 最后把本地库数据推送到远程仓库。
安装设置
git 想要把自己的内容提交到远程仓库,需要进行全局设置远程账号的用户名和邮箱。
// 设置自己的用户名
git config --global user.name "你的用户名"
// 设置自己的邮箱
git config --global user.email "你的邮箱"
设置成功后会在C:\Users\你的Windows系统账号名(此目录是Windows系统账号名)中出现.gitconfig文件。此文件中存储了上面命令设置的账号及邮箱。
// 查看当前git版本
git --version
// 查看当前的git配置
git config --list
在gitlab上创建远程仓库
新建项目–>创建空白项目
仓库创建成功
http和ssh链接的区别
使用https url克隆对初学者来说会比较方便,复制https url然后到git Bash里面直接用clone命令克隆到本地就好了,但是每次fetch和push代码都需要输入账号和密码,这也是https方式的麻烦之处。
使用SSH url克隆却需要在克隆之前先配置和添加好SSH key,因此,如果想要使用SSH url克隆的话,必须是这个项目的拥有者。否则是无法添加SSH key的,另外ssh默认是每次fetch和push代码都不需要输入账号和密码,如果想要每次都输入账号密码才能进行fetch和push也可以另外进行设置。
新建本地仓库
初始化
定位到要提交的项目文件上直接点击OK即可
init完成之后,可以看到原本的项目文件名变成红色,红色在idea的git版本表示未add的文件,同时在系统资源管理中打开项目的磁盘文件目录,会发现一个.git的隐藏文件,这个文件就git的配置和仓库文件;
// 初始化命令,初始化完成后,虎会在目录中出现隐藏目录 .git
git init
添加到缓存区
回到idea项目中,点击VCS>Git>Add添加当前项目下的文件,添加完成之后,之前的红色文件名变成了绿色了,表示已经Add成功,但还没有commit
// add命令
git add 要添加的文件名
提交到本地仓库
VCS>Git>Commit File,然后在提交创建填写提交注释说明
// commit命令
git commit -m “自定义注释”
推送到远程仓库
提交完成之后,只是提交到本地仓库,这个时候还没有同步到远程的gitlab服务上,需要push操作,VCS>Git>Push
在弹出的窗口中点击“Define remote”,会弹出一个新窗口,在URL中添加从gitlab中复制的http链接
// 设置远程仓库地址
git remote add origin 远程仓库URL地址
// 推送到远程仓库
git push -u origin 分支名称
弹出这个窗口后点击push
控制台或者屏幕右下角出现以下文字,代码提交到gitlab成功
Pushed master to new branch origin/master
常用命令
状态
命令:git status
没有添加到缓存区的状态(add前),通过命令查看,文件名显示为红色
添加到缓存区后的状态(add后),通过命令查看,文件名显示为绿色
提交到本地仓库后的状态(commit后)通过命令查看,没有文件提示
修改已提交的文件且没有添加到缓存区时,通过命令查看,显示为红色 modified:文件名
修改已提交的文件且添加到缓存区后,通过命令查看,显示为绿色 modified:文件名
克隆
// 将远程仓库的内容下载到本地
git clone 远程仓库http地址链接
拉取
// 拉取远程仓库内容到本地
git pull origin 分支名
删除
删除代码有风险,操作需谨慎!!!
// 删除文件
git rm 文件名
// 删除状态
git status 被执行过删除命令的文件查看状态显示为绿色 deleted: 文件名
// 提交删除操作
git commit -m “删除信息”
// 提交到远程仓库
git push -u origin 分支名
日志
// 查看日志及其版本号
git log
// 日志简化
git log --pretty=oneline
// 查看简短日志
git reflog
版本回退
// 回退到指定版本
git reset --hard [局部版本号]
分支
master:主分支
develop:开发分支
临时分支:功能分支、预发分支、修补bug分支
// 创建分支,此时创建的分支只是在本地仓库创建分支,远程仓库并没有创建
git checkout -b 新分支名 master
// 查看本地所有分支,哪个分支是绿色且前面带有*号,就是是当前所在分支。
git branch
// 推送本地分支到远程
git push origin 本地分支名:远程分支名
// 使本地分支与远程分支创建联系
git branch --set-upstream-to=origin/分支名
// 分支切换
git checkout 分支名
// 合并分支,把分支合并到当前分支
// 例如:把develop合并到master分支中,需要先切换到master,然后执行合并命令
git merge --no-f 分支名
// 删除本地分支
// 如果当前正处于这个分支,是不能删除这个分支的,需先切换到其他分支
git branch -d 分支名
// 删除远程仓库中分支
git push origin --delete 分支名
报错
SSL certificate problem: self signed certificate in certificate chain
git config --global http.sslVerify false