一、Git 优势
- 大部分操作在本地完成,不需要联网
- 完整性保证
- 尽可能添加数据而不是删除或修改数据
- 分支操作非常快捷流畅
- 与 Linux 命令全面兼容
二、Git 程序安装
三、Git 结构
#mermaid-svg-9Go6R1leWXWrDCqn {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-9Go6R1leWXWrDCqn .error-icon{fill:#552222;}#mermaid-svg-9Go6R1leWXWrDCqn .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-9Go6R1leWXWrDCqn .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-9Go6R1leWXWrDCqn .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-9Go6R1leWXWrDCqn .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-9Go6R1leWXWrDCqn .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-9Go6R1leWXWrDCqn .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-9Go6R1leWXWrDCqn .marker{fill:#333333;stroke:#333333;}#mermaid-svg-9Go6R1leWXWrDCqn .marker.cross{stroke:#333333;}#mermaid-svg-9Go6R1leWXWrDCqn svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-9Go6R1leWXWrDCqn .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-9Go6R1leWXWrDCqn .cluster-label text{fill:#333;}#mermaid-svg-9Go6R1leWXWrDCqn .cluster-label span{color:#333;}#mermaid-svg-9Go6R1leWXWrDCqn .label text,#mermaid-svg-9Go6R1leWXWrDCqn span{fill:#333;color:#333;}#mermaid-svg-9Go6R1leWXWrDCqn .node rect,#mermaid-svg-9Go6R1leWXWrDCqn .node circle,#mermaid-svg-9Go6R1leWXWrDCqn .node ellipse,#mermaid-svg-9Go6R1leWXWrDCqn .node polygon,#mermaid-svg-9Go6R1leWXWrDCqn .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-9Go6R1leWXWrDCqn .node .label{text-align:center;}#mermaid-svg-9Go6R1leWXWrDCqn .node.clickable{cursor:pointer;}#mermaid-svg-9Go6R1leWXWrDCqn .arrowheadPath{fill:#333333;}#mermaid-svg-9Go6R1leWXWrDCqn .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-9Go6R1leWXWrDCqn .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-9Go6R1leWXWrDCqn .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-9Go6R1leWXWrDCqn .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-9Go6R1leWXWrDCqn .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-9Go6R1leWXWrDCqn .cluster text{fill:#333;}#mermaid-svg-9Go6R1leWXWrDCqn .cluster span{color:#333;}#mermaid-svg-9Go6R1leWXWrDCqn div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-9Go6R1leWXWrDCqn :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}
git addgit commit
工作区--写代码 暂存区--临时存储 本地库--历史版本
四、Git 和 代码托管中心
- 局域网环境下 - GitLab 服务器
- 外网环境下 - GitHub- 码云
五、本地库和远程库
- 团队内部协作#mermaid-svg-LGEKKlVpbgLRchdm {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-LGEKKlVpbgLRchdm .error-icon{fill:#552222;}#mermaid-svg-LGEKKlVpbgLRchdm .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-LGEKKlVpbgLRchdm .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-LGEKKlVpbgLRchdm .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-LGEKKlVpbgLRchdm .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-LGEKKlVpbgLRchdm .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-LGEKKlVpbgLRchdm .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-LGEKKlVpbgLRchdm .marker{fill:#333333;stroke:#333333;}#mermaid-svg-LGEKKlVpbgLRchdm .marker.cross{stroke:#333333;}#mermaid-svg-LGEKKlVpbgLRchdm svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-LGEKKlVpbgLRchdm .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-LGEKKlVpbgLRchdm .cluster-label text{fill:#333;}#mermaid-svg-LGEKKlVpbgLRchdm .cluster-label span{color:#333;}#mermaid-svg-LGEKKlVpbgLRchdm .label text,#mermaid-svg-LGEKKlVpbgLRchdm span{fill:#333;color:#333;}#mermaid-svg-LGEKKlVpbgLRchdm .node rect,#mermaid-svg-LGEKKlVpbgLRchdm .node circle,#mermaid-svg-LGEKKlVpbgLRchdm .node ellipse,#mermaid-svg-LGEKKlVpbgLRchdm .node polygon,#mermaid-svg-LGEKKlVpbgLRchdm .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-LGEKKlVpbgLRchdm .node .label{text-align:center;}#mermaid-svg-LGEKKlVpbgLRchdm .node.clickable{cursor:pointer;}#mermaid-svg-LGEKKlVpbgLRchdm .arrowheadPath{fill:#333333;}#mermaid-svg-LGEKKlVpbgLRchdm .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-LGEKKlVpbgLRchdm .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-LGEKKlVpbgLRchdm .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-LGEKKlVpbgLRchdm .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-LGEKKlVpbgLRchdm .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-LGEKKlVpbgLRchdm .cluster text{fill:#333;}#mermaid-svg-LGEKKlVpbgLRchdm .cluster span{color:#333;}#mermaid-svg-LGEKKlVpbgLRchdm div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-LGEKKlVpbgLRchdm :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}pushclonepush-'加入团队'pull 本地库1 远程库 本地库2
- 跨团队协作#mermaid-svg-OssdPtPKw1YaczBx {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-OssdPtPKw1YaczBx .error-icon{fill:#552222;}#mermaid-svg-OssdPtPKw1YaczBx .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-OssdPtPKw1YaczBx .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-OssdPtPKw1YaczBx .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-OssdPtPKw1YaczBx .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-OssdPtPKw1YaczBx .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-OssdPtPKw1YaczBx .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-OssdPtPKw1YaczBx .marker{fill:#333333;stroke:#333333;}#mermaid-svg-OssdPtPKw1YaczBx .marker.cross{stroke:#333333;}#mermaid-svg-OssdPtPKw1YaczBx svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-OssdPtPKw1YaczBx .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-OssdPtPKw1YaczBx .cluster-label text{fill:#333;}#mermaid-svg-OssdPtPKw1YaczBx .cluster-label span{color:#333;}#mermaid-svg-OssdPtPKw1YaczBx .label text,#mermaid-svg-OssdPtPKw1YaczBx span{fill:#333;color:#333;}#mermaid-svg-OssdPtPKw1YaczBx .node rect,#mermaid-svg-OssdPtPKw1YaczBx .node circle,#mermaid-svg-OssdPtPKw1YaczBx .node ellipse,#mermaid-svg-OssdPtPKw1YaczBx .node polygon,#mermaid-svg-OssdPtPKw1YaczBx .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-OssdPtPKw1YaczBx .node .label{text-align:center;}#mermaid-svg-OssdPtPKw1YaczBx .node.clickable{cursor:pointer;}#mermaid-svg-OssdPtPKw1YaczBx .arrowheadPath{fill:#333333;}#mermaid-svg-OssdPtPKw1YaczBx .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-OssdPtPKw1YaczBx .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-OssdPtPKw1YaczBx .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-OssdPtPKw1YaczBx .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-OssdPtPKw1YaczBx .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-OssdPtPKw1YaczBx .cluster text{fill:#333;}#mermaid-svg-OssdPtPKw1YaczBx .cluster span{color:#333;}#mermaid-svg-OssdPtPKw1YaczBx div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-OssdPtPKw1YaczBx :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}forkclonepushmerge <- 审核 <- pull requestpullpull 远程库1 远程库2 本地库2-1 本地库1-1 本地库1-2
六、Git 命令行操作
1、本地库初始化
- 命令:
git init
- 效果:
- 注意:.git 目录中存放的是本地库相关的子目录和文件,不要删除,也不要随意修改
2、设置签名
- 形式: - 用户名- Email 地址
- 作用:区分不同开发人员的身份
- 辨析:这里的签名与登录远程库(代码托管中心)的账号密码没有任何关联
- 命令: - 项目级别 / 仓库级别:仅在当前本地库范围内有效 -
git config user.name abcdefg
-git config user.email [email protected]
- 信息保存位置:./.git/config
- 系统用户级别:登录当前操作系统的用户范围 -git config --global user.name abcdefg
-git config --global user.email [email protected]
- 信息保存的位置:~/.gitconfig
- 优先级:(就近原则)项目级别 > 系统用户级别
3、基本操作
- 状态查看操作
git status
查看工作区、暂存区状态- 添加操作
git add [file name]
将工作区的“新建/修改”添加到暂存区- 提交操作
git commit -m 'commit message' [file name]
将暂存区的内容提交到本地库- 查看历史记录
git log
(多屏显示控制方式:空格向下翻页;b 向上翻页;q 退出)git log --pretty=oneline``````git log --oneline
- 前进后退 - 本质
git reflog
- 基于索引值操作(推荐)git reset --hard [局部索引值]
- 使用 ^ 符号:只能往后退git reset --hard HEAD^
一个 ^ 表示后退一步,n 个表示后退 n 步- 使用 ~ 符号:只能后退git reset --hard HEAD~n
表示后退 n 步- reset 命令的三个参数对比 - soft 参数:仅仅在本地库移动 HEAD 指针- mixed 参数:在本地库移动 HEAD 指针,并重置暂存区- head 参数:在本地库移动 HEAD 指针,并且重置暂存区和工作区
- 删除文件并找回 - 前提:删除前文件存在是的状态提交到了本地库- 操作:
git reset --hard [指针位置]
- 比较文件差异
git diff [文件名]
:将工作区中的文件和暂存区进行比较git diff [本地库中历史版本]
:将工作区中的文件和本地库历史记录比较 不带文件名比较多个文件
4、分支管理
在版本控制过程中,使用多条线同时推进多个任务。
好处:
- 同时并行推进多个功能开发,提高开发效率
- 各个分支在开发过程中,如果其中一个分支失败不会对其他分支产生任何影响
分支操作
- 创建分支
git branch [分支名]
- 查看分支
git branch -v
- 切换分支
git checkout [分支名]
- 合并分支 - 切换到接受修改的分支上(被合并、增加新内容)上
git checkout [被合并分支名]
- 执行 merge 命令git merge [有新内容分支名]
- 解决冲突 - 编辑文件,删除特殊符号- 把文件修改到满意程度,保存退出-
git add [文件名]
-git commit -m "日志信息"
(此时 commit 不能带任何文件名)
七、Git 基本原理
哈希
- 不论输入的数据的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定
- 哈希算法确定,输入数据确定,输出数据能够保持不变
- 哈希算法确定,输入数据在变化,输出数据一定变化,而通常变化很大
- 哈希算法不可逆
Git 底层采用的是 SHA-1 算法
原理:
#mermaid-svg-jxOVBQm1AKEGD7dg {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-jxOVBQm1AKEGD7dg .error-icon{fill:#552222;}#mermaid-svg-jxOVBQm1AKEGD7dg .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-jxOVBQm1AKEGD7dg .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-jxOVBQm1AKEGD7dg .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-jxOVBQm1AKEGD7dg .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-jxOVBQm1AKEGD7dg .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-jxOVBQm1AKEGD7dg .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-jxOVBQm1AKEGD7dg .marker{fill:#333333;stroke:#333333;}#mermaid-svg-jxOVBQm1AKEGD7dg .marker.cross{stroke:#333333;}#mermaid-svg-jxOVBQm1AKEGD7dg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-jxOVBQm1AKEGD7dg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-jxOVBQm1AKEGD7dg .cluster-label text{fill:#333;}#mermaid-svg-jxOVBQm1AKEGD7dg .cluster-label span{color:#333;}#mermaid-svg-jxOVBQm1AKEGD7dg .label text,#mermaid-svg-jxOVBQm1AKEGD7dg span{fill:#333;color:#333;}#mermaid-svg-jxOVBQm1AKEGD7dg .node rect,#mermaid-svg-jxOVBQm1AKEGD7dg .node circle,#mermaid-svg-jxOVBQm1AKEGD7dg .node ellipse,#mermaid-svg-jxOVBQm1AKEGD7dg .node polygon,#mermaid-svg-jxOVBQm1AKEGD7dg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-jxOVBQm1AKEGD7dg .node .label{text-align:center;}#mermaid-svg-jxOVBQm1AKEGD7dg .node.clickable{cursor:pointer;}#mermaid-svg-jxOVBQm1AKEGD7dg .arrowheadPath{fill:#333333;}#mermaid-svg-jxOVBQm1AKEGD7dg .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-jxOVBQm1AKEGD7dg .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-jxOVBQm1AKEGD7dg .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-jxOVBQm1AKEGD7dg .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-jxOVBQm1AKEGD7dg .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-jxOVBQm1AKEGD7dg .cluster text{fill:#333;}#mermaid-svg-jxOVBQm1AKEGD7dg .cluster span{color:#333;}#mermaid-svg-jxOVBQm1AKEGD7dg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-jxOVBQm1AKEGD7dg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}
SHA-1SHA-1
原始文件 2f9a352d8291ccbeea00628489141e45fd081a 网络传输 目标文件 8369f40251df6eb213d0a92a5b0390e5c8805b4d 对比 -> 不一致 -> 目标文件有损坏
八、GitHub
1、创建远程库
#mermaid-svg-4KltpFg6uQz2YU2i {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-4KltpFg6uQz2YU2i .error-icon{fill:#552222;}#mermaid-svg-4KltpFg6uQz2YU2i .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-4KltpFg6uQz2YU2i .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-4KltpFg6uQz2YU2i .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-4KltpFg6uQz2YU2i .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-4KltpFg6uQz2YU2i .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-4KltpFg6uQz2YU2i .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-4KltpFg6uQz2YU2i .marker{fill:#333333;stroke:#333333;}#mermaid-svg-4KltpFg6uQz2YU2i .marker.cross{stroke:#333333;}#mermaid-svg-4KltpFg6uQz2YU2i svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-4KltpFg6uQz2YU2i .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-4KltpFg6uQz2YU2i .cluster-label text{fill:#333;}#mermaid-svg-4KltpFg6uQz2YU2i .cluster-label span{color:#333;}#mermaid-svg-4KltpFg6uQz2YU2i .label text,#mermaid-svg-4KltpFg6uQz2YU2i span{fill:#333;color:#333;}#mermaid-svg-4KltpFg6uQz2YU2i .node rect,#mermaid-svg-4KltpFg6uQz2YU2i .node circle,#mermaid-svg-4KltpFg6uQz2YU2i .node ellipse,#mermaid-svg-4KltpFg6uQz2YU2i .node polygon,#mermaid-svg-4KltpFg6uQz2YU2i .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-4KltpFg6uQz2YU2i .node .label{text-align:center;}#mermaid-svg-4KltpFg6uQz2YU2i .node.clickable{cursor:pointer;}#mermaid-svg-4KltpFg6uQz2YU2i .arrowheadPath{fill:#333333;}#mermaid-svg-4KltpFg6uQz2YU2i .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-4KltpFg6uQz2YU2i .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-4KltpFg6uQz2YU2i .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-4KltpFg6uQz2YU2i .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-4KltpFg6uQz2YU2i .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-4KltpFg6uQz2YU2i .cluster text{fill:#333;}#mermaid-svg-4KltpFg6uQz2YU2i .cluster span{color:#333;}#mermaid-svg-4KltpFg6uQz2YU2i div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-4KltpFg6uQz2YU2i :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}
New repository Repository name Create repository
2、在本地创建远程库地址别名
git remote -v
:查看当前所有远程地址别名
git remote add [别名] [远程库https地址]
3、推送操作
git push [别名] [分支名]
4、克隆
- 命令:
git clone [远程地址]
- 效果: - 完整地把远程库下载到本地- 创建 origin 远程地址别名- 初始化本地库
5、拉取
- pull = fetch + merge
git fetch [远程库地址别名] [远程分支名]
git merge [远程库地址别名/远程分支名]
git pull [远程库地址别名] [远程分支名]
6、解决冲突
如果不是最新推送,必须先拉取
7、跨团队协作
- 点击 Fork
- 本地修改,然后推送到远程
- #mermaid-svg-u6tJvcQ9ryCd3lCd {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-u6tJvcQ9ryCd3lCd .error-icon{fill:#552222;}#mermaid-svg-u6tJvcQ9ryCd3lCd .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-u6tJvcQ9ryCd3lCd .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-u6tJvcQ9ryCd3lCd .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-u6tJvcQ9ryCd3lCd .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-u6tJvcQ9ryCd3lCd .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-u6tJvcQ9ryCd3lCd .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-u6tJvcQ9ryCd3lCd .marker{fill:#333333;stroke:#333333;}#mermaid-svg-u6tJvcQ9ryCd3lCd .marker.cross{stroke:#333333;}#mermaid-svg-u6tJvcQ9ryCd3lCd svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-u6tJvcQ9ryCd3lCd .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-u6tJvcQ9ryCd3lCd .cluster-label text{fill:#333;}#mermaid-svg-u6tJvcQ9ryCd3lCd .cluster-label span{color:#333;}#mermaid-svg-u6tJvcQ9ryCd3lCd .label text,#mermaid-svg-u6tJvcQ9ryCd3lCd span{fill:#333;color:#333;}#mermaid-svg-u6tJvcQ9ryCd3lCd .node rect,#mermaid-svg-u6tJvcQ9ryCd3lCd .node circle,#mermaid-svg-u6tJvcQ9ryCd3lCd .node ellipse,#mermaid-svg-u6tJvcQ9ryCd3lCd .node polygon,#mermaid-svg-u6tJvcQ9ryCd3lCd .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-u6tJvcQ9ryCd3lCd .node .label{text-align:center;}#mermaid-svg-u6tJvcQ9ryCd3lCd .node.clickable{cursor:pointer;}#mermaid-svg-u6tJvcQ9ryCd3lCd .arrowheadPath{fill:#333333;}#mermaid-svg-u6tJvcQ9ryCd3lCd .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-u6tJvcQ9ryCd3lCd .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-u6tJvcQ9ryCd3lCd .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-u6tJvcQ9ryCd3lCd .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-u6tJvcQ9ryCd3lCd .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-u6tJvcQ9ryCd3lCd .cluster text{fill:#333;}#mermaid-svg-u6tJvcQ9ryCd3lCd .cluster span{color:#333;}#mermaid-svg-u6tJvcQ9ryCd3lCd div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-u6tJvcQ9ryCd3lCd :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Pull Request New pull request Create pull request Pull Request commits Files changed Conversation Merge pull request Confirm merge
- 对话
- 审核代码
- 将远程库拉取到本地
8、SSH 登录
- 进入当前用户的加目录
cs ~
- 删除 .ssh 目录
rm-rvf .ssh
- 运行命令生成 .ssh 密钥目录
ssh-keygen -t rsa -C [email protected]
[注意:这里 -C 这个参数是大写]- 进入 .ssh 目录查看文件列表
cd .ssh``````ls - lF
- 查看 id_rsa.pub 文件内容
cat id_rsa.pub
- 复制 id_rsa.pub 文件内容,登录 GitHub#mermaid-svg-7pSJ0jlrOsne1Hva {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-7pSJ0jlrOsne1Hva .error-icon{fill:#552222;}#mermaid-svg-7pSJ0jlrOsne1Hva .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-7pSJ0jlrOsne1Hva .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-7pSJ0jlrOsne1Hva .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-7pSJ0jlrOsne1Hva .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-7pSJ0jlrOsne1Hva .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-7pSJ0jlrOsne1Hva .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-7pSJ0jlrOsne1Hva .marker{fill:#333333;stroke:#333333;}#mermaid-svg-7pSJ0jlrOsne1Hva .marker.cross{stroke:#333333;}#mermaid-svg-7pSJ0jlrOsne1Hva svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-7pSJ0jlrOsne1Hva .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-7pSJ0jlrOsne1Hva .cluster-label text{fill:#333;}#mermaid-svg-7pSJ0jlrOsne1Hva .cluster-label span{color:#333;}#mermaid-svg-7pSJ0jlrOsne1Hva .label text,#mermaid-svg-7pSJ0jlrOsne1Hva span{fill:#333;color:#333;}#mermaid-svg-7pSJ0jlrOsne1Hva .node rect,#mermaid-svg-7pSJ0jlrOsne1Hva .node circle,#mermaid-svg-7pSJ0jlrOsne1Hva .node ellipse,#mermaid-svg-7pSJ0jlrOsne1Hva .node polygon,#mermaid-svg-7pSJ0jlrOsne1Hva .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-7pSJ0jlrOsne1Hva .node .label{text-align:center;}#mermaid-svg-7pSJ0jlrOsne1Hva .node.clickable{cursor:pointer;}#mermaid-svg-7pSJ0jlrOsne1Hva .arrowheadPath{fill:#333333;}#mermaid-svg-7pSJ0jlrOsne1Hva .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-7pSJ0jlrOsne1Hva .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-7pSJ0jlrOsne1Hva .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-7pSJ0jlrOsne1Hva .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-7pSJ0jlrOsne1Hva .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-7pSJ0jlrOsne1Hva .cluster text{fill:#333;}#mermaid-svg-7pSJ0jlrOsne1Hva .cluster span{color:#333;}#mermaid-svg-7pSJ0jlrOsne1Hva div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-7pSJ0jlrOsne1Hva :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 用户头像 Settings SSH and GPG keys
- New SSH Key
- 输入复制的密钥信息
- 回到 Git hash 创建远程地址别名
git remote add origin_ssh [email protected]:abcdefg@123456/[项目名称].git
- 推送文件进行测试
版权归原作者 kuiini 所有, 如有侵权,请联系我们删除。