GIt使用
一、RDC的小建议
- 在文件目录下创建git
- 替换**.gitignore**减少项目负担
二、Git学习
- 新建本地仓库
在工作目录下右键打开窗口 输入git init(初始化)
或者全程命令
mkdir 文件名
cd 文件名
git init
- 本地仓库添加内容
git add (工作目录下的)名称 工作区提交到暂存区
git commit -m “提交说明,如第一次提交等等” 暂存区提交到本地区
- 基础设置
右键加鼠标滚动,可以调字体大小;需要固定的话就在右键 options text 设置字体大小和编码U-8
- 查看有没有提交
git status nothing to commit 缓存区为空;Untracked files(没有被管理)
- 显示最近和最远的日志
git log 由近到远 commit后面接的一串 索引
历史过多,有分页
下一页:空格 上一页 b 页尾有(END)退出 q
git log --pretty=online
git log --online
git reflog 多了指针(HEAD)走到当前需要多少步
- 前进或者后退历史版本
git reset --hard 索引(复制前面查看的)(常用)
复制:在终端中选中就是复制
粘贴:右键 paste
PS:本地库移动的同时,重置工作区 暂存区
git reset --mixed 重置暂存区 工作区不动
git reset --soft 暂存工作区都不动
- 删除和找回操作
删工作区的数据 rm
然后同步操作到暂存区跟工作区 add commit
找回本地库中删除的文件,实际上就是将历史版本切换到刚才添加文件(删除前的一个)的版本即可 reset --hard
删除 同步到缓存区就后悔 reset --hard 索引/HEAD
- 比对工作区和缓冲区不一致
git diff [file name]
git diff (比较所有的文件)
git diff[历史版本] [文件名](比较暂存区与工作区的差异)
三、分支
- 定义使用多条线同时推进多个任务
- 操作分支
git branch -v 查看分支(在哪个分支上,*表示)
git branch 分支名
git checkout 要切换到的分支名
- 合并分支
先进入主分支 然后输入命令 git merge 要合并的分支名
冲突问题:在同一个文件同一位置修改 Merge conflict in 文件名
在文件中或者输入 cat 文件名查看
在文件中留下想要的即可 然后add (解决冲突)commit(结束合并状态)
四、远端提交
- 创建本地库 创建远程库
- 通过别名保存远程库地址 git remove -v 查看 git remove add 别名 (origin是默认习惯命名)
- 推送 git push 远程库地址 要推送的分支名
- 克隆 在远端库界面有 clone&downlone 复制地址
git clone 地址(done表示完成)
克隆 可以初始化本地库 将远程库完整克隆到本地 自动完成别名的生成
- pull操作
先确定是否更新
git fetch 远程库地址 抓取的分支
抓取后检查
git chrakout 地址/抓取的分支名
把分支切换回来
git checkout 分支名
合并
git merge 地址/分支名
- 分支管理策略
创建并切换dev分支 git switch -c dev
修改后提交
切换到master分支
合并用参数保留分支信息 git merge --no–off -m"备注" dev
- bug分支
git stash 把工作现场暂时隐藏起来,恢复现场后继续工作
创建新的分支修复Bug 修复完后合并并删除分支
恢复 git stach apply 恢复后stach内容不删除,用git stash drop来删;用git stash pop 恢复的同时把stash也删了
在master分支上修复的Bug想合并到dev分支上,可以用git cherry-pick commit 把bug提交的修改复制到当前分支上
- feature
开发一个新的功能最好新建一个分支,可以通过 git branch -D name 强行删除
五、标签管理
- git tag 标签名 新建标签 默认HEAD 也可指定一个commit id
- git tag -a 标签名 -m “标签信息” 可指定标签信息
- git tag 查看所有标签
- git push 远端地址 标签名 可以推送标签
- **git push 远端地址 --tags ** 可以推送所有未推送的标签
- **git tag -d 标签名 ** 删除本地标签
- **git push 远端地址 :refs/tags/标签名 ** 删除远端标签
六、其他命令
git pull -u origin master --下载远程代码
git push -u origin master --上传代码到远程
git push -u origin master -f --上传代码到远程 强制 覆盖远程文件
ssh-keygen -t rsa --生成key
ssh -v git@github.com --测试key是否配置正确