安装
若安装成功右键文件夹会出现如图所示
GitHub 和 Gitee
GitHub和Gitee都是技术开源网站,可用于存放代码项目,还有诸如酷云(搭建自己的轻量git仓库)、gitlab(一般存放私有项目,注册会用到谷歌人机验证)等。
git的使用
管理文件夹
右键文件夹,点击git Bash Here打开git命令行
git init //初始化git仓库
此时文件夹会生成一个.git的隐藏文件夹
ps: git不会管理空文件夹, 一般会在空文件夹创建.gitkeep文件保留文件夹
创建.gitignore文件(与.git文件同级)
// .gitignore
index.js //忽略制定文件
node_modules //忽略制定文件夹
*.js //忽略指定后缀的文件
动态忽略提交
git update-index --skip-worktree src/common/env.js
可以实现修改本地文件不会被提交,但又可以拉取最新更改的需求。适用于一些不经常变动,但是必须本地化设置的文件
git update-index --no-skip-worktree src/common/env.js 解除
git ls-files -v . | grep "^S" 查找被忽略的文件
忽略合并
因为.gitattributes首次识别时是由文件的更新时间来确定保留识别的,如果dev的某个文件的修改不想合并到master分支
上的话,那么master的文件上的修改时间必须在dev的修改时间之后,否则忽略不成功。
1. git config --global merge.ours.driver true
2. 在项目根目录下新建文件.gitattributes,然后文件中写入需要忽略的文件名 + merge=ours, 一个文件占一行.
在dev分支上建立.gitattributes 文件并提交
readme.txt merge=ours
/common/src/main/resources/application.yml merge=ours
*.xml merge=ours
3. 切换到master分支上merge
git 分区
- 工作区
- 暂存区
- 历史区
1. 将工作区的文件添加至暂存区
git add index.js // 添加单个文件
git add utils/ // 添加文件夹
git add --all // 添加所有文件,简写为git add .
2. 将暂存区的文件取回工作区
git reset HEAD -- index.js // 取回单个文件
git reset HEAD -- utils/ // 取回文件夹
git reset HEAD -- . // 取回全部文件
3. 将暂存区的文件添加至历史区
git commit -m 版本说明
git reset --hard HEAD^ // 回退一个版本
git reset --hard 历史版本号 // 回退特定版本
git push origin master -f // 回退之后要强制提交(高危操作)
注:git log 可查看版本信息
git resert 历史版本号
git resert 历史版本号 -m 1 ---针对merge的版本
区别:
1、reset是彻底回退到指定的commit版本,该commit后的所有commit都将被清除;
而revert仅是撤销指定commit的修改,并不影响后续的commit。
2、reset执行后不会产生记录,revert执行后会产生记录。
git 操作
1. 分支
git branch dev // 创建dev分支
git checkout dev // 切换dev分支
git branch -d dev // 删除dev分支,不能在dev删除dev
git merge dev // 合并分支dev
git cherry-pick 版本号 // 将一个分支上的某个commit合并到另一个分支
git pull origin dev // 拉取dev的代码
2. 正常拉取提交
git clone 远程仓库地址 // 克隆仓库的代码(https || ssh)
git add .
git commit -m xxxxx
git remote add origin https://github.com/vickySC/gz2008.git // 第一次需要
git push -u origin dev // -u 即--set-upstream,第一次提交需要-u
3. 合并分支
git branch -a // 先查看有无关联远程分支
git checkout -b dev origin/dev // 要合并的分支dev如果没关联,创建dev+切换dev+关联远程(-b === branch)
如果失败 git fetch
git pull origin dev // 拉下该分支的代码
git checkout master // 切回原有分支
git merge dev // 合并
git push origin master //提交
小tips
git config --global user.email 邮箱
git config --global user.name 名字
git config --global credential.helper wincred // 全局保存密码,存放于控制面板-用户账户-windows凭据
vim ~/.gitconfig,打开 C: - 用户 - xxx - .gitconfig 文件查看相关信息
git pull origin dev 之前不要git commit -m xxx,否则可能会产生merge:
按下键盘字母 i 进入insert模式可修改黄色合并信息
按下键盘Esc,输入":wq"可直接退出
防止自动转化crlf
git config --global core.autocrlf false
ssl校验失败关闭验证
git config --global http.sslVerify false
git Bash 相当于小型的Linus虚拟机
clear // 清屏
ls // 查看目录
git remote add origin git@gitee.com/******.git
报错:error: remote origin already exists.
远程origin已存在,git remote -v可查看
git remote rm origin可重置