1,git下载与安装,参考一下链接 https://www.jianshu.com/p/414ccd423efc
建议下载git最新版,如下:
2,idea(2017.3.5)中git的使用
———2.1,idea打开一个空目录(最好是英文目录)
——2.2,克隆远程仓库代码
————在弹出的账号密码框输入账号和密码
————弹框依次点击yes, maven
一路next,直到这一步,选择jdk,然后next、finish就ok了
——2.3,配置Tomcat,并运行项目
——2.4,查看分支,如下(默认本地当前处于远程的master(origin/master)主分支上)
远程分支解释:
origin/master |
远程仓库主分支,主要用于发布代码到正式环境,超级管理员可用,开发人员可不管(只拥有pull权限) |
origin/test | 远程仓库分支,用于分布到测试环境,超级管理员可用,开发人员可以不管(只拥有pull权限) |
origin/dev | 功能分支(开发分支),开发人员自己的分支最终都合并到该分支push |
——2.5,在自己的分支上开发
————以origin/dev为基础创建自己的分支并切换到自己的分支
为分支起名(随意起,我这里就命名为dev)
再查看分支状态,如下,local中多了一个dev(看图标可知这是本地当前所在的分支),且处于远程的dev(origin/dev)上
现在就可以在自己本地的分支上愉快的开发了。
开发前先拉一下远程代码是个不错的决定
P.S.一下解释一下fetch和pull的区别
fetch | 拉取远程的分支,更新到本地,但是不会合并到当前分支 |
pull | 拉取远程分支,更新到本地,并合并到当前分支 |
——2.6,提交代码到远程分支
注意:提交代码之前,务必先拉一下远程代码,这样才不会覆盖其他人的代码;拉完之后可能会出现代码冲突的情况,这时需要解决冲突之后再提交代码。拉代码的步骤同上。
————提交
————push(如果上一步选择的仅是commit,那么接下来需要push操作,如下)
——2.7,版本回滚
————查看历史版本
————右键复制要回滚的版本号
———— 回滚
————关于reset Type
hard | 暂存区、工作区全部用指定提交版本的目录树覆盖掉 |
soft | 不进行暂存区和工作区的覆盖 |
mixed(或不使用参数) | 覆盖暂存区,但不覆盖工作区 |
————如果想把回退后的结果直接push到远程,则如下操作即可(注意确保没有回滚了别人的有用的修改)
——2.8,新建本地分支、将新分支推到远程仓库(没有特殊需求不建议这样做)、将新分支合并到origin/dev
————在origin/dev基础上创建本地新分支yj_dev
——————先确保本地当前处于origin/dev上
——————新建
——————push yj_dev到远程
现在查看远程分支,发现多了一个origin/yj_dev
——————好了,现在yj_dev分支的任务已经完成了,我需要将其合并到dev分支上,如下
如果yj_dev分支的任务到目前为止已经彻底完成了,那么将origin/yj_dev删除即可
——2.9,关于权限
假如你不是项目超级管理员(master),但是却试图通过origin/master或者origin/test远程主分支push你的代码,你会得到以下 的结果
查看git日志可以看到以下结果,即没有权限
3,命令行下的Git的使用
——3.1,创建本地仓库并拉取远程代码
————任意路径下创建文件夹,右键选择如下
————初始化
————拉取远程仓库代码(首次拉代码或没有在本地配置全局git账号时需要输入账号和密码,根据提示输入即可),本命令中的master是本地当前分支的名称
————查看分支(其中绿色为当前所在分支,红色为远程分支)
————checkout远程分支origin/dev为本地分支,并起名
————查看本地当前分支关联的远程分支情况
————开发并提交代码(红色文件名为修改过的文件)
P.S:如果想提交当前路径下的所有文件和文件夹,add步骤使用git add ./*命令即可
————拉取远程代码(注意该步骤在将代码push到远程之前是必须的,否则很容易覆盖小伙伴的代码;该步骤如果出现冲突则需要先解决冲突,解决冲突可以参考廖雪峰教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001375840202368c74be33fbd884e71b570f2cc3c0d1dcf000)
————将代码提交到远程仓库
————删除本地分支
——3.2,版本回退
————查看提交历史,会显示版本id、提交者和提交时间等信息(进入git log后按Q可推出git log)
————回退到指定版本(指定回退的版本时,也可以通过“HEAD~n”,n表示前n个版本,如 HEAD~2:前2个版本)
如果此时想将回退完的代码直接同步到远程,则使用git push --force即可,否则正常开发提交即可
——3.3,新建分支,推送新分支,合并分支
————新建分支
P.S.“git checkout -b yj_dev”相当于 “git branch yj_dev”和“git checkout yj_dev”两个命令
————推送新分支
————合并分支