暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GIT版本控制系统(一)

瓶子的跋涉 2023-01-31
204

目录:

  • Git

  • 本地相关操作

  • 分支

  • 合并

  • 团队协作

  • GitHub


Git版本控制:记录文件的内容变化

Git:分布式版本控制工具   VS 集中式版本控制工具

Git最新版镜像下载地址:

    https://registry.npmmirror.com/binary.html?path=git-for-windows/v2.39.1.windows.1/


    Git和代码托管中心:

       代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为 远程库。

    局域网

    • GitLab

    互联网

    • GitHub

    • Gitee


    Git常用命令

      //用管理员身份打开git Bash
      git config --global user.name 用户名    //设置用户签名
      git config --global user.email 邮箱     //设置用户签名
      git init 初始化本地库
      git status 查看本地库状态
      git add 文件名       //添加到暂存区
      git commit -m "日志信息" 文件名   //提交到本地库
      git reflog           //查看历史记录
      git reset --hard 版本号  //版本穿梭


      通用Linux命令

      存在与暂存区可以通过提示指令删除,但工作区并没有删除,仅删除了追踪。

        git rm --cached hello.txt

        将暂存区的文件提交到本地库

          git commit -m "日志信息" 文件名

          查看日志引用信息:(版本号仅看到七位)

            git reflog

            查看详细日志信息

              git log   可以查看到相关用户以及邮箱

              修改文件

                vim hello.txt
                //内部
                //复制操作 ctrl +y  ,粘贴操作 ctrl + p 保存 Ctrl +s
                //保存并退出 Esc + :wq


                cat hello.txt  //可以直接在命令行查看文件内容

                查看是否修改状态:已经被修改

                重新追踪

                提交到本地库

                查看更新日志

                版本穿梭:回到之前的版本:Git切换版本,底层其实就是移动Head指针

                  git reset --hard 版本号

                  git的分支操作

                  分支:在版本控制过程中,同时推送多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。分支的底层也是指针的应用。

                  • 同时并行推动多个功能开发,提高开发效率

                  • 如果一个分支失败,不会影响其它分支


                  分支操作

                    git branch 分支名   创建分支
                    git branch -v      //查看分支
                    git checkout 分支名 切换分支
                    git merge 分支名    //把指定的分支合并到当前分支上
                    // 修改分支名
                    git branch -m <原分支名> <新分支名>
                    // 删除分支
                    git branch -d <分支名>

                    查看分支:目前就一个

                    创建分支:hot-fix

                    切换分支

                    修改hot-fix分支下hollo.txt文件

                      vim hello.txt  进入修改
                      cat hello.txt  //查看修改的内容
                      git add hello.txt  //追中南
                      git commit -m "hot-fix first cmmit"

                      合并分支:把hot-fix合并到master上,要站在master上

                        git merge hot-fix

                        冲突合并:

                        冲突产生的原因合并分支时,两个分支在同一个文件的同一位置有两套完全不同的修改,Git无法替我们决定使用哪一个。必须人为决定新代码内容

                          vim hello.txt
                          cat hello.txt
                          git add hello.txt
                          git commit -m "master test" hello.txt
                          //切换分支再次操作
                          git checkout hot-fix
                          vim hello.txt
                          cat hello.txt
                          git add hello.txt
                          git commit -m "hot-fix test" hello.txt


                          //切换到master分支
                          git checkout master

                          合并失败,合并冲突

                            vim hello.txt //进入hello.txt 手动合并
                            // 将不需要的内容进行删除

                            此时commit 后不加文件名,手动解决文件冲突

                            合并分支修改也只能修改合并分支下的文件,hot-fix下并不会修改

                            Git团队协作

                            远程仓库操作

                              git remote -v   //查看当前远程地址别名
                              git remote rm 别名  //删除远程地址以及别名
                              git remote add 别名 远程地址 //起别名
                              git push 别名 分支  //推送本地分支上的内容到远程仓库
                              git clone 远程地址  //将远程仓库的内克隆到本地
                              git pull 远程库地址别名 远程分支名  
                              // 将远程仓库对于分支最新内容拉下来后与当地本地分支直接合并


                              创建远程库以及别名:

                                git remote -v //查看当前远程地址别名
                                git remote git_test https://github.com/foryouos/git_test.git

                                本地库代码推送到远程

                                  git push git_test master

                                  如果出现如下保存,删除别名,重新加入,使用鼠标右键粘贴链接

                                    $ git push git_test master
                                    fatal: protocol '––––––––https' is not supported

                                    首次会让选择登陆

                                    推送成功

                                    在github修改部分内容,本地库与远程库内容不同

                                    拉取,将远程库最新内容与本地库合并 

                                      git pull git_test master

                                      克隆远程仓库到本地

                                        //切换到新的地址
                                        git clone 地址
                                        cd 克隆到的文件夹

                                        团队协作

                                          git add hello.txt
                                          git commit -m "modifty by YHS" hello.txt
                                          git push git_test master   //传到GitHub

                                          查看自己登陆的GitHub账户

                                          团队内协作:GitHub添加项目成员

                                          跨团队协作Fork

                                          创建GitHubSSH免密登陆

                                          把原有文件夹下.ssh删除

                                          git进入此文件夹输入以下命令,邮箱换成自己的邮箱,生成ssh


                                            ssh-keygen -t rsa -cC foryouos@qq.com
                                              .pub //公钥

                                              公钥复制到GitHub进行添加

                                              修改GitHub内容同步到本地

                                              Git-help

                                                $ git help
                                                使用:git [--version] [--help] [-C <path>] [-c <name>=<value>]
                                                [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
                                                [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
                                                [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
                                                <command> [<args>]


                                                这些是在各种情况下使用的通用Git命令:


                                                start a working area (参见命令: git help tutorial)
                                                clone 将存储库克隆到新目录中
                                                init 创建一个空的Git存储库或重新初始化一个现有的存储库


                                                work on the current change (参见命令: git help everyday)
                                                add 将文件内容添加到索引中
                                                mv 移动或重命名文件、目录或符号链接
                                                reset 将当前磁头重置为指定状态
                                                rm 从工作树和索引中删除文件


                                                examine the history and state (参见命令: git help revisions)
                                                bisect 使用二分查找查找引入错误的提交
                                                grep 打印与模式匹配的行
                                                log 显示提交日志
                                                show 显示各种类型的对象
                                                status 显示工作树状态


                                                grow, mark and tweak your common history
                                                branch 列出、创建或删除分支
                                                checkout 切换分支或还原工作树文件
                                                commit 记录对存储库的更改
                                                diff 显示提交、提交和工作树等之间的更改
                                                merge 将两个或多个开发历史连接在一起
                                                rebase 在另一个基本提示之上重新应用提交
                                                tag 创建、列表、删除或验证用GPG签名的标记对象


                                                collaborate (参见命令: git help workflows)
                                                fetch 从另一个存储库下载对象和引用
                                                pull 从另一个存储库或本地分支获取并与之集成
                                                push 更新远程引用和相关对象


                                                'git help -a''git help -g' 列出可用的子命令和一些概念指导。
                                                命令'git help <command>''git help <concept>' 查看特定子命令或概念.


                                                参考资料:

                                                • 尚硅谷Git

                                                • 《GitHub入门与实践》


                                                文章转载自瓶子的跋涉,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                                评论