一、Git
1、Git命令行操作
(1)本地库初始化
- 命令:
git init
- 效果:
- 注意:.git目录中存放的是本地库相关的子目录和文件,不要轻易进行删除、修改等操作。
(2)设置签名
- 形式:
用户名:tom
Email地址:sousou@163.com - 作用:区分不同开发人员身份
- 辨析:这里设置的签名和登录远程库(代码托管中心)的账号密码没有关联。
- 命令:
–项目级别/仓库级别:仅当前本地库范围内生效。git config user.name/user.email tom/sousou@163.com
–系统用户级别:登录当前操作系统的用户范围生效。git config --global user.name/user.email tom/souosu@163.com
–级别优先级:就近原则(项目级别优先于系统用户级别)
(3)添加提交以及查看状态操作
- 查看状态命令:
git status
- 添加追踪(将文夹加入提交缓存区)命令:
git add <filename>
- 解除追踪命令:
git rm --cached <filename>
- 提交(从缓存区提交到本地库)命令:
git commit <filename>
orgit commit -m "message" <filename>
执行够自动调用Vim编辑器进入提交注释记录:i进入编辑模式->Esc->:wq;如果是加-m参数则可以直接在后面添加注释:
提交完毕后查看当前状态:
当修改文件夹内容之后再次查看,发现会提示文件被修改:
根据提示再次提交并添加注释即可。 - 整体流程:
(4)版本 - 打印日志命令:
git log
or 打印单行日志git log --pretty=oneline
- 打印带指针数日志:
git reflog
- 历史版本前进和后退:
git reset --hard/mixed/soft '索引'
–参数hard(常用):本地库指针移动的同时,重置暂存区,重置工作区。
–参数mixed:本地库指针移动的同时,重置暂存区。
–参数soft:本地库指针移动其他两者不动。
(5)文件删除与找回 - 删除工作区文件命令:
rm ‘filename’
- 将删除操作同步到暂存区命令:在执行删除本地库文夹后执行
git add 'filename'
- 将删除操作同步到本地库命令:在执行删除本地库文夹后执行
git commit -m 'message' 'filename'
- 找回本地库删除的文件:实际上就是将历史版本切换到刚才添加文件的那个版本
如下是执行本地库删除之后的log打印:
(6)比较文件差异 - 比较工作区和暂存区文件差异命令:
git diff 'filename'
根据现实得知工作区新增了内容:abcd
2、分支
(1)概述
- 在版本控制过程中,使用多条线同时推荐多个任务。这里所说的多条线,就是多个分支。
- 分支的好处:
–同时多个分支可以并行开发,互不耽误互不影响,提高开发效率。
–如果有一个分支开发失败,直接删除就可以,不会对其它分支造成影响。
(2)查看、创建、切换分支
- 查看分支命令:
git branch -v
-创建分支命令:git branch 'branchname'
- 切换分支命令:
git checkout 'branchname'
- 分支合并命令:
git merge ‘otherbranchname’
二、GitHub
1、在本地创建一个本地库git1,然后初始化
2、登录Github创建一个远程库gitTest
(1)在本地创建远程库别名
- 查看当前本地别名命令:
git remote -v
- 添加别名:
git remote add '别名' '地址'
其中fetch用于拉取,push用于推送。
(2)推送操作
- 命令:
git push '地址' '分支'
执行以上命令需要登录一下GitHub账号:
推 送 成 功:
登录远程库可以查看远程库内容,点击文夹可以查看文件内容:
(3)克隆操作
新建文件夹git2模拟others克隆远程库 - 克隆命令:
git clone '远程库地址'
克隆成功:
- 克隆的效果
–完整的把远程库下载到本地
–能够克隆远程库存在的别名
–已经初始化了本地库
(4)邀请新成员加入团队
进入远程库,依次点击Settings->Manage access->Invite a collaborator
输入对方Github账号、用户名或者邮箱地址即可:
添加成功:
对方接受邀请之后就会成为团队成员之一!
(5)远程修改的拉取
远程库内容:
本地库内容,可以看到远程库被其他成员更新而本地还没更新,此时就需要进行拉取操作:
- 命令:
git fetch '地址' ‘分支’
orgit merge '地址'/‘分支’
orgit pull '地址' ‘分支’
(无需检出)
在将拉取的内容检出到本地库:
3、Idea整合Github
(1)进入工程文件夹下,进入Git Bash - 本地库初始化:
git init
- 设置Github远程路签名:
- 从远程获取代码并合并本地的版本:
注
:要把两个不同的项目合并,需要在git pull添加参数**–allow-unrelated-histories**,告诉git允许不相关历史内容合并。这个参数只解决因为两个仓库有不同的开始点,如果存在冲突先解决冲突在执行。
-将本地库内容推送到远程库:
到这里本地库已经可以同远程库实现数据互通了!
比如说我们在工程这种新建一个类Person,通过如下步骤将其push到远程库:
一般在开发中先进行pull操作,在没有冲突的情况下在进行push:
查看Github可以看到刚刚push的Person类: