Git - 使用2

mac2022-06-30  22

文章目录

语法1. 分支1. 分支的查看、切换、创建、删除2. 隐藏工作区修改内容3. 合并分支 2. 远程公有仓库1. 语法使用2. 异常error 3. 远程私有仓库 - 自己买的服务器

语法

分支名:指向该分支名的最新commit版本Head指针:指向当前所在分支的最新commit版本 – head指针跟着当前分支指针

1. 分支

  由一下图描述分支的版本机制 → 当前分支在哪,head指针就指向当前分支名

图1: 可看过刚创建dev分支时,分支指针 直接指向原来的 master主版本链 (即拥有此时所有master保存的版本)  图2: 创建bugfix分支,并且做了一次提交即c5 (由图可以得知 master没有c5版本,而 bugifx有 )  图3: master分支合并bugfix分支  图4: master合并bugfix分支后 → 删除bugfix分支   图5:在dev分支中有多次新的版本(即 c4、c6) *   图6: master合并dev分支 - c7版本是系统自己创建的,目的是连接连个分支 - 只C6这条链的节点不能连接到master分支最新的节点,那么Git在合并时就会自动创建一个节点来连接两个分支
1. 分支的查看、切换、创建、删除
$ git branch // 查看所有分支 -- 绿色字体显示用户所在的当前分支 $ git branch 分支名 // 创建新的分支 -- 创建分支时 : 当前的版本内容状态与master最新版本库文件的内容状态一致 $ git checkout -b 分支名 // 创建、并切换到该新分支 $ git branch -m 旧分支名 新分支名 // 修改分支名 $ git checkout 分支名 // 切换到 ''分支名''的分支 -- 一切换分支,文件的内容改为该分支下的最新版本( head指针的内容 ) 或者 将工作区被修改的部分藏起来( stash ) $ git branch -d 分支名 // 删除分支 -- 用户不能删除所在的分支
2. 隐藏工作区修改内容
$ git stash list // 当前分支 显示隐藏的文件列表 $ git stash // 隐藏当前工作区的改变、以及暂存区的文件,并且工作区恢复到工作区修改前的内容状态 $ git stash apply stash@{n} // 恢复隐藏的工作区文件、暂存区文件、并且暂存区文件降级到工作区,需要重新的提交到暂存区 $ git stash pop stash@{n} // 恢复隐藏的工作区文件、暂存区文件、并且暂存区文件降级到工作区,需要重新的提交到暂存区 -- 同时在 stash list 列表删除 stash@{n} 项 $ git stash drop stash@{n} // 在 stash list 列表删除 stash@{n} 项 $ git statsh clear // 清除 stash list 列表
3. 合并分支

正常的分支合并后会自动的commit,但是 有冲突则会将合并的内容在工作区中显示,还未commit

  语法结构

// 当前在master分支 git merge 分支名 // 把"分支名"的分支最新版本 合并到 master分支上

遇到这种情况工作区的内容已经更改 – 需要自己手动的删除文件内容、保存、commit文件 —— 文件的同行数据内容不一样

2. 远程公有仓库
1. 语法使用

pull = fetch + merge

push pull clone push 甲程序员 远程仓库 乙程序员

GitHub当前所在仓库的 https、SSH的网络地址

  语法结构

$ git push 远程仓库地址别名 远程仓库的分支名 // 将本地的文件推送到远程仓库上 $ git pull 远程仓库的Https网络地址 远程仓库的分支名 // 拉取远程仓库的文件到本地 $ git pull 远程仓库的SSH网络地址 远程仓库的分支名 // github的服务器上需要保存本机的git的ssh公有密钥 // 拉取git远程服务器上的文件与本地进行合并 $ git remote add 远程仓库地址别名 远程仓库网络地址 // 设置远程仓库URL别名 $ git remote -v // 查看远程仓库的别名列表

  示例

$ git push https://github.com/lovecodeyou/test_repository.git master $ git push git@github.com:lovecodeyou/test_repository.git master $ git remote add github-test https://github.com/lovecodeyou/test_repository.git $ git pull github-test master

2. 异常error
pull从远程仓库拉取到本地遇到的问题

出现原因: SSH协议 它需要将我们 本地生成的SSH密钥 放到我们的github 服务器上面

解决方案:将本地公共密钥放置在 GitHub 服务器上     步骤1. 生成本地密钥 $ ssh-keygen // 本地SSH密钥生成

密钥生成成功显示 – 可看到密钥的位置

  步骤2. 复制本地公钥的内容 - id_rsa.pub

  步骤3. 复制的公钥内容 保存在 GItHub服务器上

       

3. 远程私有仓库 - 自己买的服务器

 步骤1:登录远程私有服务器

$ ssh root@远程服务地址 // 登录 服务器

将第三行的的签名密钥印记放置在 known_hosts 文件里面

 步骤2:推送文件到远程私有仓库

// 每次push、pull都需要输入密码 $ git push ssh://root@IP地址/bare仓库的文件夹 $ git pull ssh://root@IP地址/bare仓库的文件夹

 步骤3:将ssh密码保存至远程私有服务器 – 从而不用每次push、pull输入密码

$ ssh-copy-id root@IP地址 // 自动将密码保存至私有远程服务器上
最新回复(0)