【git】常用命令|分支操作|GitHub|idea集成git
快捷键
清屏:ctrl+l
复制:双击鼠标左键
粘贴:单击鼠标中键
git常用命令
设置用户签名:
git config --global user.name xxx
git config --global user.email xxx@163.com
初始化本地库:git init
查看状态:git status
项目提交
git命令与Linux通用,创建hello.txt文件,用vim编辑
将工作区的内容上传到暂存区:git add hello.txt
从暂存区中删除:git rm --cached hello.txt
将暂存区的内容提交到本地库:git commit -m "first commit" hello.txt
首次提交
查看历史版本:git reflog
(精简),git log
提交步骤: 工作区 - 提交暂存区 - 提交本地库
版本穿越
首先使用git reflog
查看历史版本,复制想要穿越回的版本号,然后git reset --hard cced5b6(版本号)
,穿越成功,此时工作区的文件为已穿越的版本
(底层 :移动的head指针)
也可以再次穿越回第三版本
git分支操作
公司中有多个服务器,多个环境,开发环境、测试环境、生产环境等,项目就需要有多个分支,复制多套代码,比如程序员开发时的开发分支,测试分支,供用户使用的线上分支等等。分支可以并行推进多个功能的开发,提高开发效率,若有分支开发失败,不会对其他分支有影响。
版本迭代过程:
已在开发好的master主线程序(v1.0)基础上,做出新的改动比如更新ui,就会引申出一条新的分支,在新的分支中进行开发,开发成功后与主线程序合并(v1.1)形成新的版本,此时遇到bug,开出新的hot-fix(热修)分支进行紧急修复,问题解决后合并入主线(v1.2);向程序中添加新功能,就再开出新的分支,经过一系列的研发测试后上线并入master主线(v2.0)······
创建分支:git branch xxx
查看分支:git branch -v
切换分支:git checkout xxx
分支内容修改后也需要提交
此时切换回master分支,里面的内容没有变化
分支合并
想要将hot-fix分支合并到master,需要在master分支下操作
git merge xxx
正常合并:
仅改动过hot-fix,无冲突
冲突合并:
分支合并时,两个分支在同一个文件同一个位置有两套完全不同的修改,git无法替我们决定使用哪一个,需要人为决定使用哪套代码。
冲突再现:master中修改文件,再切换hot-fix分支,修改文件,此时切换回master,合并hot-fix分支
git自动将两处修改做合并
此时hot-fix中的文件不会被修改
(git本质就是head指针的移动)
GitHub
下载devsidercar,提高GitHub访问速度
创建远程库:create a new repository,repository name最好和本地库的名字一样
查看远程库别名:git remote -v
创建别名:git remote add git-demo(远程库别名) https://github.com/MojitOo0/git-demo.git(远程库链接)
出现两个别名,既可以拉取,也可以推送
push
推送本地库到远程库:
git push xxx(项目名称) master(分支)
首次push需要登录GitHub账户,现使用token方式personal access token,弹出的对话框填写登录名和密码,密码就是你的token
pull
远程库中的代码拉取回本地:git pull git-demo master
clone
进入需要存放项目的文件夹,执行命令克隆:git clone https://github.com/xxxx/xxxx.git
,公共库不需要登录GitHub,也不用init
clone会做以下事情:
1.拉取代码 2.初始化本地仓库 3.创建别名
idea集成git
环境准备
eclipse、idea等的一些特定文件需要忽略,iml,.idea,需要配置:
创建忽略规则文件xxx.ignore,放在家目录下
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml
.gitconfig中插入一条:
[core]
excludesfile = C:/Users/win10/git.ignore(文件所在路径)
保存,打开idea:
新建一个项目,打开settings—>version control
到这里环境就准备好了
提交
弹出的框点击ok,在项目文件夹中就会创建一个.git的隐藏文件夹,表示初始化成功,pom.xml也会变红,表示在工作区中,未被提交。
将pom文件提交到暂存区:
新建一个java类,idea弹出是否加入git:
将项目包全部提交,再传到本地库:
填写commit message,“first commit”,然后提交
版本切换
修改提交三次,在下面的version control可以看到log日志,和对应的指针位置:
切换版本成功,黄色head指针移动:
创建分支
或在idea右下角选择:
新建一个hot-fix分支,可以再次切换:
合并分支
正常合并:
hot-fix中的代码修改并已提交本地库,现切换回master,进行合并
合并成功:
冲突合并:
将master和hot-fix都进行修改提交:
idea右下角选择hot-fix,点击merge into current,出现对话框,点击merge
手动合并,合并好后点击apply
合并成功:
idea设置GitHub账号
账号密码不可用,需要使用token,到GitHub上申请token。
分享项目到GitHub:
GitHub克隆代码到本地
输入上方的url
gitee码云
idea安装gitee插件:
登录gitee:
首先在gitee上生成私人令牌:
使用生成的token来登录:
分享项目到gitee: