1.git安装
默认,可以改安装路径,其他下一步就行。
2.git必须设置用户名和邮箱(邮箱可以不是真实的)
一定要配置用户信息,否则在提交时会报错。
用户名设置:
git config --global user.name "用户名"
用户名查看
git config --global user.name
邮箱设置
git config --global user.email "邮箱地址"
邮箱查看
git config --global user.email
3.创建别名
在c盘用户目录下创建.bashrc文件(部分windows用户无法创建.bashre文件可以使用touch ~/.bashrc
)
#用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'
4.创建一个仓库
在你想放git仓库的位置创建一个文件夹,打开文件夹,点击右键git bash here输入命令就创建成功了。标志就是有一个隐藏的.git的文件。
初始化仓库
命令:
git init
5. 基础操作命令
工作区:电脑上所有的文件都是工作区
工作区上传到暂存区命令
git add "需要上传的文件"
git add . 当前文件夹的所有文件都上传
暂存区上传到本地仓库命令
git commit
上传到本地仓库的文件注释(比如做了什么修改增加)
git commit -m "注释:必须是英文"
查看当前文件是什么提交状态
git status
查看历史日志
git log[option]
option:
--all:显示所有分支
--pretty=oneline:将提交的信息显示为一行
--abbrev-commot:使得输出的commitId更简短
--graph:以图形的形式显示
版本回退
git会记录所有你的操作记录id,如果不需要当前版本可以使用命令回到任何你操作记录的时候
命令:
git reset --hard commitId
查看已经删除的记录
git reflog
如果只想上传一部分文件可以创建一个.gitignore的文件,在里面加上不想上传的文件类型或名字就行了
6.分支
1.查看当前分支
git branch
2.创建新的分支
git branch 分支名
查看当前分支就是head指向的分支名,有多个分支时我们只能操作一个分支,两个分支上传的文件互相不干扰
3.切换分支
git checkout 分支名
直接切换到一个不存在的分支(创建并切换)
git checkout -b 分支名
4.合并分支
合并分支时必须是master分支下
git merge 分支名
5.删除分支与创建分支一样
git checkout -d 分支名 删除时需要做各种检查
git checkout -D 分支名 强制删除不做任何检查
注:如果删除其他分支时,其他分支上有未合并到master的分支时会删除失败 ,这时就可以使用-D删除
开发中分支使用原则与流程
- master(生产分支)
线上分支,主分支,中小规模项目作为线上运行的应用对应的分支 - develop(开发分支)
是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要是合并带master分支,准备上线 - feture/xxxx分支
从develop创建的分支,一般是同期并行开发,但不同期上线同时创建的分支,分支上的研发任务完成后合并到develop分支 - hotfix/xxxx分支
从master派生的分支,一般为线上bug修复使用,修复完成后需要合并到master,test,develop分支。
7.仓库托管
1. 生成ssh公钥,在本地生成公钥
命令:
ssh-keygen -t rsa
输入后不断回车,如果公钥已经存在,则自动覆盖
2. 查看密钥
在本地查看密钥
命令:
cat ~/.ssh/id_rsa.pub
然后把生成的密钥复制仓库公钥中
添加完成后可以输入ssh -T git@gitee.com验证是否配置成功
ssh -T git@gitee.com
输入后会出现这个输入yes就行了。
3. 推送
指定远程仓库
git remote add origin 远程仓库地址
仓库名字默认 origin
查看远程仓库
git remote
把本地仓库的文件提交到云端
git push origin master
origin:仓库的名字
master:那个分支
如果本地代码和云端代码修改了同一个东西,git是不会让你提交的,-f就是强制推送(注:在公司开发中会禁用此功能)
git push [-f] [--set-upstream]
查看云端分支和本地分支的关系
git branch -vv
绑定云端分支与本地分支,绑定后推送直接推送到绑定分支,推送也不用仓库名和分支名
命令:
git push --set-upstream origin master:master
示例:
4.从远程仓库clone
命令:
git clone <远程仓库路径> [本地目录]
本地目录可以省略,会自动生成一个目录
在实际开发时,一般只有第一次接受项目clone一次项目
效果:
抓取
抓取就是将仓库里的更新都抓取到本地,但不会进行合并。
命令:
git fetch [remote name] [branch name]
拉取
拉去就是将远端仓库的修改拉到本地并自动进行合并等同于fetch+merge,如果不指定远端名和分支名,则抓取所有并更新当前分支