一、图标含义
master、origin master 与 origin/master介绍
o/master(remote name/branch name):远程仓库名/分支名
- Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多。
- Git CMD:Windows风格的命令行。
- Git GUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令。
-
日常更新上传的步骤:
每个分支都是一个完整的项目,互不影响。
git add
git commit
git pull
git push
5.关于IDEA集成字体颜色
绿色,已经加入控制暂未提交
红色,未加入版本控制
蓝色,加入,已提交,有改动
白色,加入,已提交,无改动
灰色,版本控制已忽略文件
6.分支说明:
二、常用的Linux命令
- cd:改变目录。
- cd..:回退到上一个目录,直接cd进入默认目录。
- pwd:显示当前所在的目录路径。
- ls(ll):都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更详细。
- touch:新建一个文件,如 touchu index.js,就会在当前目录下新建一个index.js文件。
- rm:删除一个文件,rm index.js ,就会把index.js文件删除。
- mkdir:新建一个目录,就是新建一个文件夹。
- rm -r:删除一个文件夹,rm -r src,删除src目录。
- mv:移动文件,mv index.js src,(index.js 是我们要移动的文件,src 是目标文件夹。
- reset:重新初始化终端/清屏。
- clear:清屏。
- history:查看命令历史。
- help:帮助。
- exit:退出。
- #:表示注解。
16.查看当前系统版本:cat/etc/os-release
17.查看系统内核:uname -r
三、Git常用命令
- 设置全局变量
git config --global user.name "zjy" (这个和账号没关系,只是一个用户签名)
$ git config --global user.email "540507521@qq.com" - 常用操作
1)初始化:git init 或者 git clone 【url】
2)下载项目:git clone 【url】(下载项目不需要管理凭证,但是只要把代码推送到远程的就需要管理凭证,一台电脑只有一个管理凭证,管理凭证就是git账号)
3)查看所有提交跟踪状态:git status,单个文件查看:git status 文件名
4)加入到暂存区:git add 文件名,添加所有文件到暂存区:git add .
5)提交暂存区的文件到本地仓库:git commit -m “消息内容”(-m:提交信息)
6)创建公钥密钥:ssh-keygen -t rsa -C 邮箱
7)列出所有本地分支:git branch (git branch -v:列出所有本地分支和分支信息)
8)列出所有远程分支:git branch -r
9)新建一个分支,但依然停留再当前分支:git branch 分支名字
10)新建一个分支,并切换到该分支:git checkout -b 分支名字
git checkout 分支名字:切换分支
11)合并指定分支到当前分支:
第一种:(在分支1使用)git merge 要合并的分支名字(分支2)-分支2合并到分支1
第二种:(在1分支使用)git rebase 要合并到的分支名字(分支2)--分支1合并到分支2
12)删除分支:git branch -d 分支名字
13)删除远程分支:git push origin --delete 分支名字 或者 git branch -dr 【remote/branch】
14)强制移动HEAD:git branch -f master HEAD~3 (将master向上移动3个节点)
15)查看日志信息:git reflog
16)查看详细信息:git log
17)回退到某个版本:git reset --hard 版本号(版本号从信息里查看)
18)git remote -v:查看远程库所有别名(别名的意思就是项目链接太长了,给项目重新取一个别名)
19)git remote add 别名 项目链接:创建别名
20)git push 别名 分支名:推送本地库的代码到远程库
21)git pull 别名 分支名:拉取远程库的代码到本地库
四、用法
五、git流程
1、当前在master分支上,需要开发master分支的项目。
2、创建一个开发分支 dev ,git branch dev,dev分支创建成功,dev上存在和master分支一摸一样的项目,当前所在的分支还是master。
3、切换分支,git checkout dev,从当前分支master切换到开发分支dev。
(也可以 2 和 3 合并起来,就是 git checkout -b dev,新建一个开发分支dev,并切换到 dev 分支)
4、在开发分支 dev 开发项目,开发完成,准备合并分支。
5、将把开发分支dev合并到master分支上,先切换到master分支,然后键入 git merge dev。
(也可以这样,不切换到master分支,当前所在分支为开发分支dev,然后 git rebase master,将dev分支合并到master分支上)
六、Git集成IDEA
1、首先先配置忽略的配置,作用是:每当把项目上传的时候,git会将所有文件默认选取,为了把一些不必要的文件忽略,所以配置忽略文件。
创建 xxx.ignore 文件,然后将需要忽略的文件键入,在.gitconfig配置文件中输入
需要用到正斜线 “ / ”,不能用反斜线 “ \ ”
[core]
excludesfile = xxx.ignore文件地址
2、IDEA配置Git七、git流程idea更新代码时的两个选项Merge the incoming changes into the current branch与Rebase the current branch on top of the incoming changes
1、第一个Merge
一般都使用这个,这个是按照时间顺序更新代码,什么意思呢,就是有两个场景:
假如有两个开发人员a、b都在同一个分支test上进行开发:
(1)a、b把代码都拉下来;
(2)a进行开发,在a开发的同时,b可能也在开发(场景一),可能没有(场景二);
(3)场景一:a开发之后,更新代码并提交代码,然后b也开发好,更新代码,因为Merge更新代码是按照时间来更新的,所以不会出现冲突问题,b很顺利地将代码更新下来;
(4)场景二:a开发之后,更新代码并提交代码,b没有进行开发,直接更新代码,这个肯定顺利成功。
2、第二个Rebase
这个是将别人的代码先更新下来,然后将自己的代码提到最顶端,什么意思呢,就比如:
两个开发人员a、b在同一个分支test上进行开发:
(1)a、b把代码都拉下来;
(2)a进行开发,在a开发的同时,b可能也在开发(场景一),可能没有(场景二);
(3)场景一:a开发之后,更新代码并提交代码,然后b也开发好,更新代码,此时就会出现问题,它会更新代码,将b代码覆盖下来,就会冲突;
(4)场景二:b没有开发代码,直接更新代码,这是没有问题的。
八、idea上面使用git提交到本地仓库怎么回退
1、右键选中需要回退的文件,点击git
2、使用 HEAD^ 来描述版本,一个 ^ 表示前一个版本,两个 ^^ 表示前两个版本,以此类推。
也可以使用数字来代替 ^,比如说前 100 个版本可以写作 HEAD~100。
说明:将HEAD指针指向需要回退到的版本,然后再进行回退。
3、回退
九、git提交规范 fix,feat等字段含义
feat: 新功能(feature)
fix: 修补bug
docs: 文档(documentation)
style: 格式(不影响代码运行的变动)
refactor: 重构(即不是新增功能,也不是修改bug的代码变动)
chore: 构建过程或辅助工具的变动
revert: 撤销,版本回退
perf: 性能优化
test:测试
improvement: 改进
build: 打包
ci: 持续集成
十、git merge和git rebase使用方法(都是针对本地来进行合并的)
有三个分支master、dev、test:
(1)A在dev上开发功能,完成功能开发,先得在dev分支提交开发的功能模块,然后推送到远程服务器,然后git checkout master切换到本地的master分支,使用git merge dev将在dev分支上开发的功能合并到本地的master分支,然后推送到远程服务器;
(2)B在本地切换到master分支,更新代码,在本地git checkout test切换到test分支,在使用git rebase master将更新下来的代码合并到自己的本地test分支上。