Git工作流程图
Git工作命令
- clone(克隆): 从远程仓库中克隆代码到本地仓库
- checkout (检出):从本地仓库中检出一个仓库分支然后进行修订
- add(添加): 在提交前先将代码提交到暂存区
- commit(提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本
- fetch (抓取) : 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
- pull (拉取) : 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于
fetch+merge - push(推送) : 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库
仓库 暂存区 工作区的关系
相关命令
-
git add 添加工作区一个或多个文件的修改到暂存区
将所有修改加入暂存区:git add . -
git commit 提交暂存区内容到本地仓库的当前分支
git commit -m ‘注释内容’ -
git status 查看的修改的状态(暂存区、工作区)
-
git log [option] 查看提交记录
options
–all 显示所有分支
–pretty=oneline 将提交信息显示为一行
–abbrev-commit 使得输出的commitId更简短
–graph 以图的形式显示 -
git reset --hard commitID 版本切换
commitID 可以使用 git-log 或 git log 指令查看 -
git reflog 这个指令可以看到已经删除的提交记录
分支
-
查看本地分支
命令:git branch -
创建本地分支
命令:git branch 分支名
直接切换到一个不存在的分支(创建并切换):git checkout -b 分支名
3.== *切换分支(checkout) ==
命令:git checkout 分支名
我们还可以直接切换到一个不存在的分支(创建并切换)
命令:git checkout -b 分支名 -
== *合并分支(merge) ==
一个分支上的提交可以合并到另一个分支
命令:git merge 分支名称扫描二维码关注公众号,回复: 13714459 查看本文章 -
删除分支
不能删除当前分支,只能删除其他分支
git branch -d b1 删除分支时,需要做各种检查
git branch -D b1 不做任何检查,强制删除 -
解决冲突
当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解
决冲突,解决冲突步骤如下:1.处理文件中冲突的地方 2.将解决完冲突的文件加入暂存区(add) 3.提交到仓库(commit)
分支使用原则
- master (生产) 分支
线上分支,主分支,中小规模项目作为线上运行的应用对应的分支; - develop(开发)分支
是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线
要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到master分支,准备上线。 - feature/xxxx分支
从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完
成后合并到develop分支。 - hotfix/xxxx分支,
从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、 - develop分支。
还有一些其他分支,在此不再详述,例如test分支(用于代码测试)、pre分支(预上线分支)等
等。
远程仓库
添加远程仓库
git remote add <远端名称> <仓库地址>
- 远端名称:默认是origin,取决于远端服务器设置
- 仓库地址:从远端服务器获取此url
查看远程仓库
git remote
推送到远程仓库
git push [-f] [--set-upstream] [远端名称] [本地分支名][:远端分支名]
如果远程分支名和本地分支名相同,则可以只写本地分支名
从远程仓库克隆
git clone <仓库地址> [本地目录]
如果本地目录省略的话会自动生成一个目录
从远程仓库中抓取和拉取
抓取
抓取指令就是将仓库里的更新都抓取到本地,不会进行合并
如果不指定远端名称和分支名,则抓取所有分支。
git fetch [remote name] [branch name]
拉取
拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
如果不指定远端名称和分支名,则抓取所有并更新当前分支。
git pull [remote name] [branch name]
查看本地分支与远程分支的绑定关系
git branch -vv
如果没有绑定关系
就将本地分支master和远程分支master绑定关系
git push --set-upstream origin master:master
IDEA中使用Git
新建仓库
初始化本地仓库
选择项目
输入远程仓库项目
提交本地仓库
推送到远程仓库
创建分支
题外话
这篇文章是我用来记录学习 方便以后复习用的
这篇文章写的很好 本文部分内容是摘录这里面的
Kisugi Takumi的Git笔记